| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.Profunctor.Arrow.Strong
Synopsis
- data Pastro (p :: Type -> Type -> Type) a b where
- type StrongA p = Free (Pastro p)
- liftStrong :: p a b -> StrongA p a b
- foldStrong :: Category q => Strong q => (p :-> q) -> StrongA p a b -> q a b
- runStrongT :: Strong q => (p :-> q) -> Pastro p a b -> q a b
- runStrongM :: Monad m => (forall x y. p x y -> x -> m y) -> StrongA p a b -> a -> m b
Documentation
data Pastro (p :: Type -> Type -> Type) a b where #
Pastro -| Tambara
Pastro p ~ exists z. Costar ((,)z)ProcomposepProcomposeStar ((,)z)
Pastro freely makes any Profunctor Strong.
Constructors
| Pastro :: forall (p :: Type -> Type -> Type) a b y z x. ((y, z) -> b) -> p x y -> (a -> (x, z)) -> Pastro p a b |
Instances
| ProfunctorFunctor Pastro | |
Defined in Data.Profunctor.Strong | |
| ProfunctorMonad Pastro | |
Defined in Data.Profunctor.Strong | |
| ProfunctorAdjunction Pastro Tambara | |
Defined in Data.Profunctor.Strong | |
| Strong (Pastro p) | |
| Profunctor (Pastro p) | |
Defined in Data.Profunctor.Strong | |
liftStrong :: p a b -> StrongA p a b Source #
TODO: Document
runStrongM :: Monad m => (forall x y. p x y -> x -> m y) -> StrongA p a b -> a -> m b Source #
TODO: Document