proarrow-0: Category theory with a central role for profunctors
Safe HaskellNone
LanguageHaskell2010

Proarrow.Profunctor.Costar

Documentation

data Costar (f :: j -> k) (a :: j) (b :: k) where Source Comments #

Constructors

Costar 

Fields

  • :: forall {j} {k} (a :: j) (f :: j -> k) (b :: k). Ob a
     
  • => { getCostar :: f a ~> b
     
  •    } -> Costar f a b
     

Instances

Instances details
Functor f => Profunctor (Costar f :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

dimap :: forall (c :: j) (a :: j) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Costar f a b -> Costar f c d Source Comments #

(\\) :: forall (a :: j) (b :: k) r. ((Ob a, Ob b) => r) -> Costar f a b -> r Source Comments #

Functor f => Corepresentable (Costar f :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

coindex :: forall (a :: j) (b :: k). Costar f a b -> (Costar f %% a) ~> b Source Comments #

cotabulate :: forall (a :: j) (b :: k). Ob a => ((Costar f %% a) ~> b) -> Costar f a b Source Comments #

corepMap :: forall (a :: j) (b :: j). (a ~> b) -> (Costar f %% a) ~> (Costar f %% b) Source Comments #

(Functor f, Functor g, Adjunction (Star f) (Star g)) => Adjunction (Costar f :: k -> j -> Type) (Costar g :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

Methods

unit :: forall (a :: j). Ob a => (Costar g :.: Costar f) a a Source Comments #

counit :: (Costar f :.: Costar g) :~> ((~>) :: CAT k) Source Comments #

Functor f => Adjunction (Star f :: k -> j -> Type) (Costar f :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

Methods

unit :: forall (a :: j). Ob a => (Costar f :.: Star f) a a Source Comments #

counit :: (Star f :.: Costar f) :~> ((~>) :: CAT k) Source Comments #

type (Costar f :: j -> k -> Type) %% (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Costar

type (Costar f :: j -> k -> Type) %% (a :: j) = f a

composeCostar :: forall {k} {j} (g :: k -> Type) (f :: j -> k). Functor g => (Costar f :.: Costar g) :~> Costar (Compose g f) Source Comments #