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

Proarrow.Profunctor.Fold

Documentation

data Fold (a :: k) (b :: k) where Source Comments #

Constructors

Fold :: forall {k} (m :: k) (b :: k) (a :: k). Ob m => (m ~> b) -> (a ~> m) -> ((m ** m) ~> m) -> ((Unit :: k) ~> m) -> Fold a b 

Instances

Instances details
ProdAction k => Costrong k (Fold :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fold

Methods

coact :: forall (a :: k) (x :: k) (y :: k). (Ob a, Ob x, Ob y) => Fold (Act a x) (Act a y) -> Fold x y Source Comments #

SymMonoidal k => MonoidalProfunctor (Fold :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fold

Methods

par0 :: Fold (Unit :: k) (Unit :: k) Source Comments #

par :: forall (x1 :: k) (x2 :: k) (y1 :: k) (y2 :: k). Fold x1 x2 -> Fold y1 y2 -> Fold (x1 ** y1) (x2 ** y2) Source Comments #

CategoryOf k => Profunctor (Fold :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fold

Methods

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

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

Corepresentable (Fold :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fold

Associated Types

type (Fold :: Type -> Type -> Type) %% (a :: Type) 
Instance details

Defined in Proarrow.Profunctor.Fold

type (Fold :: Type -> Type -> Type) %% (a :: Type) = [a]

Methods

coindex :: Fold a b -> ((Fold :: Type -> Type -> Type) %% a) ~> b Source Comments #

cotabulate :: Ob a => (((Fold :: Type -> Type -> Type) %% a) ~> b) -> Fold a b Source Comments #

corepMap :: (a ~> b) -> ((Fold :: Type -> Type -> Type) %% a) ~> ((Fold :: Type -> Type -> Type) %% b) Source Comments #

(CoprodAction k, BiCCC k) => Strong (COPROD k) (Fold :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fold

Methods

act :: forall (a :: COPROD k) (b :: COPROD k) (x :: k) (y :: k). (a ~> b) -> Fold x y -> Fold (Act a x) (Act b y) Source Comments #

CategoryOf k => Procomonad (Fold :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fold

Methods

extract :: (Fold :: k -> k -> Type) :~> ((~>) :: CAT k) Source Comments #

duplicate :: (Fold :: k -> k -> Type) :~> ((Fold :: k -> k -> Type) :.: (Fold :: k -> k -> Type)) Source Comments #

type (Fold :: Type -> Type -> Type) %% (a :: Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fold

type (Fold :: Type -> Type -> Type) %% (a :: Type) = [a]

trav :: forall {j} {k} (f :: j -> k) (a :: j) (b :: j). Applicative f => Fold a b -> Fold (f a) (f b) Source Comments #