proarrow
Safe HaskellNone
LanguageHaskell2010

Proarrow.Category.Enriched

Synopsis

Documentation

class (Monoidal v, Profunctor p) => Enriched v (p :: j +-> k) where Source Comments #

Working with enriched categories and profunctors in Haskell is hard. Instead we encode them using the underlying regular category/profunctor, and show that the enriched structure can be recovered.

Associated Types

type Hom v (p :: j +-> k) (a :: k) (b :: j) :: v Source Comments #

Methods

underlying :: forall (a :: k) (b :: j). p a b -> (Unit :: v) ~> Hom v p a b Source Comments #

enriched :: forall (a :: k) (b :: j). (Ob a, Ob b) => ((Unit :: v) ~> Hom v p a b) -> p a b Source Comments #

Instances

Instances details
HasZeroObject k => Enriched POINTED (Id :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched

Methods

underlying :: forall (a :: k) (b :: k). Id a b -> (Unit :: POINTED) ~> Hom POINTED (Id :: k -> k -> Type) a b Source Comments #

enriched :: forall (a :: k) (b :: k). (Ob a, Ob b) => ((Unit :: POINTED) ~> Hom POINTED (Id :: k -> k -> Type) a b) -> Id a b Source Comments #

ThinProfunctor p => Enriched CONSTRAINT (Wrapped p :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched

Methods

underlying :: forall (a :: k) (b :: j). Wrapped p a b -> (Unit :: CONSTRAINT) ~> Hom CONSTRAINT (Wrapped p) a b Source Comments #

enriched :: forall (a :: k) (b :: j). (Ob a, Ob b) => ((Unit :: CONSTRAINT) ~> Hom CONSTRAINT (Wrapped p) a b) -> Wrapped p a b Source Comments #

CodiscreteProfunctor p => Enriched () (Wrapped p :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched

Methods

underlying :: forall (a :: k) (b :: j). Wrapped p a b -> (Unit :: ()) ~> Hom () (Wrapped p) a b Source Comments #

enriched :: forall (a :: k) (b :: j). (Ob a, Ob b) => ((Unit :: ()) ~> Hom () (Wrapped p) a b) -> Wrapped p a b Source Comments #

Profunctor p => Enriched Type (Wrapped p :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched

Methods

underlying :: forall (a :: k) (b :: j). Wrapped p a b -> (Unit :: Type) ~> Hom Type (Wrapped p) a b Source Comments #

enriched :: forall (a :: k) (b :: j). (Ob a, Ob b) => ((Unit :: Type) ~> Hom Type (Wrapped p) a b) -> Wrapped p a b Source Comments #

Closed k => Enriched (Self k) (Id :: k -> k -> Type) Source Comments #

Closed monoidal categories are enriched in themselves.

Instance details

Defined in Proarrow.Category.Enriched

Methods

underlying :: forall (a :: k) (b :: k). Id a b -> (Unit :: Self k) ~> Hom (Self k) (Id :: k -> k -> Type) a b Source Comments #

enriched :: forall (a :: k) (b :: k). (Ob a, Ob b) => ((Unit :: Self k) ~> Hom (Self k) (Id :: k -> k -> Type) a b) -> Id a b Source Comments #

DaggerProfunctor p => Enriched (Type, Type) (Wrapped p :: j -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched

Methods

underlying :: forall (a :: j) (b :: j). Wrapped p a b -> (Unit :: (Type, Type)) ~> Hom (Type, Type) (Wrapped p) a b Source Comments #

enriched :: forall (a :: j) (b :: j). (Ob a, Ob b) => ((Unit :: (Type, Type)) ~> Hom (Type, Type) (Wrapped p) a b) -> Wrapped p a b Source Comments #

Monoid m => Enriched k (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Comments #

A monoid is a one object enriched category.

Instance details

Defined in Proarrow.Category.Enriched

Methods

underlying :: forall (a :: MONOIDK m) (b :: MONOIDK m). Mon a b -> (Unit :: k) ~> Hom k (Mon :: MONOIDK m -> MONOIDK m -> Type) a b Source Comments #

enriched :: forall (a :: MONOIDK m) (b :: MONOIDK m). (Ob a, Ob b) => ((Unit :: k) ~> Hom k (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) -> Mon a b Source Comments #