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

Proarrow.Profunctor.Cofree

Documentation

class (CategoryOf k, Representable (Cofree ob), forall (b :: k). Ob b => ob (Cofree ob % b)) => HasCofree (ob :: k -> Constraint) where Source Comments #

Associated Types

type Cofree (ob :: k -> Constraint) :: k +-> k Source Comments #

Methods

lower' :: forall (a :: k) (b :: k). Cofree ob a b -> a ~> b Source Comments #

section' :: forall (b :: k) (a :: k). ob b => (a ~> b) -> Cofree ob a b Source Comments #

Instances

Instances details
HasCofree (Profunctor :: PRO j k -> Constraint) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Yoneda

Associated Types

type Cofree (Profunctor :: PRO j k -> Constraint) 
Instance details

Defined in Proarrow.Profunctor.Yoneda

type Cofree (Profunctor :: PRO j k -> Constraint) = Star (Yoneda :: (j -> k -> Type) -> j -> k -> Type)

Methods

lower' :: forall (a :: PRO j k) (b :: PRO j k). Cofree (Profunctor :: PRO j k -> Constraint) a b -> a ~> b Source Comments #

section' :: forall (b :: PRO j k) (a :: PRO j k). Profunctor b => (a ~> b) -> Cofree (Profunctor :: PRO j k -> Constraint) a b Source Comments #

lower :: forall {k} (ob :: k -> Constraint) (a :: k). (HasCofree ob, Ob a) => (Cofree ob % a) ~> a Source Comments #

section :: forall {j} (ob :: j -> Constraint) (a :: j). (HasCofree ob, ob a, Ob a) => a ~> (Cofree ob % a) Source Comments #

data CofreeSub (ob :: OB k) (a :: SUBCAT ob) (b :: k) where Source Comments #

Constructors

CofreeSub :: forall {k} (ob :: OB k) (a1 :: k) (b :: k). ob a1 => Cofree ob a1 b -> CofreeSub ob ('SUB a1 :: SUBCAT ob) b 

Instances

Instances details
HasCofree ob => Representable (CofreeSub ob :: SUBCAT ob -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

Methods

index :: forall (a :: SUBCAT ob) (b :: j). CofreeSub ob a b -> a ~> (CofreeSub ob % b) Source Comments #

tabulate :: forall (b :: j) (a :: SUBCAT ob). Ob b => (a ~> (CofreeSub ob % b)) -> CofreeSub ob a b Source Comments #

repMap :: forall (a :: j) (b :: j). (a ~> b) -> (CofreeSub ob % a) ~> (CofreeSub ob % b) Source Comments #

HasCofree ob => Profunctor (CofreeSub ob :: SUBCAT ob -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

Methods

dimap :: forall (c :: SUBCAT ob) (a :: SUBCAT ob) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> CofreeSub ob a b -> CofreeSub ob c d Source Comments #

(\\) :: forall (a :: SUBCAT ob) (b :: k) r. ((Ob a, Ob b) => r) -> CofreeSub ob a b -> r Source Comments #

HasCofree ob => Adjunction (Forget ob :: k -> SUBCAT ob -> Type) (CofreeSub ob :: SUBCAT ob -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

Methods

unit :: forall (a :: SUBCAT ob). Ob a => (CofreeSub ob :.: Forget ob) a a Source Comments #

counit :: (Forget ob :.: CofreeSub ob) :~> ((~>) :: CAT k) Source Comments #

type (CofreeSub ob :: SUBCAT ob -> j -> Type) % (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

type (CofreeSub ob :: SUBCAT ob -> j -> Type) % (a :: j) = 'SUB (Cofree ob % a) :: SUBCAT ob