Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- newtype PArrow p a b = PArrow {
- runPArrow :: forall x y. p (b, x) y -> p (a, x) y
- toArrow :: Arrow a => PArrow a b c -> a b c
- fromArrow :: Arrow a => a b c -> PArrow a b c
- data Free p a b where
- foldFree :: Category q => Profunctor q => (p :-> q) -> Free p a b -> q a b
- hoistFree :: (p :-> q) -> Free p a b -> Free q a b
- newtype Append r a b = Append {
- getAppend :: r
Documentation
Lift a profunctor into an Arrow
cofreely.
Instances
Profunctor p => Strong (PArrow p) Source # | |
Profunctor p => Profunctor (PArrow p) Source # | |
Defined in Data.Profunctor.Arrow.Free | |
Profunctor p => Category (PArrow p :: Type -> Type -> Type) Source # | |
data Free p a b where Source #
Free monoid in the category of profunctors.
See https://arxiv.org/abs/1406.4823 section 6.2.
Instances
Mapping p => Mapping (Free p) Source # | |
Traversing p => Traversing (Free p) Source # | |
Defined in Data.Profunctor.Arrow.Free | |
Choice p => Choice (Free p) Source # | |
Closed p => Closed (Free p) Source # | |
Defined in Data.Profunctor.Arrow.Free | |
Strong p => Strong (Free p) Source # | |
Profunctor p => Profunctor (Free p) Source # | |
Defined in Data.Profunctor.Arrow.Free | |
Profunctor p => Category (Free p :: Type -> Type -> Type) Source # | |
foldFree :: Category q => Profunctor q => (p :-> q) -> Free p a b -> q a b Source #
Given a natural transformation this returns a profunctor.