License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- newtype Ran j p a b = Ran {
- runRan :: forall c. j c a -> p c b
- ranSquare :: (Profunctor j, Profunctor p) => Square '[j, Ran j p] '[p] '[] '[]
- ranFactor :: (Profunctor j, Profunctor p, Profunctor q) => Square '[j, q] '[p] '[] '[] -> Square '[q] '[Ran j p] '[] '[]
- riftSquare :: (Profunctor j, Profunctor p) => Square '[Rift j p, j] '[p] '[] '[]
- riftFactor :: (Profunctor j, Profunctor p, Profunctor q) => Square '[q, j] '[p] '[] '[] -> Square '[q] '[Rift j p] '[] '[]
Documentation
The right Kan extension of a profunctor p
along a profunctor j
.
Instances
(Profunctor j, Profunctor p) => Profunctor (Ran j p) Source # | |
Defined in Data.Profunctor.Kan.Square dimap :: (a -> b) -> (c -> d) -> Ran j p b c -> Ran j p a d # lmap :: (a -> b) -> Ran j p b c -> Ran j p a c # rmap :: (b -> c) -> Ran j p a b -> Ran j p a c # (#.) :: forall a b c q. Coercible c b => q b c -> Ran j p a b -> Ran j p a c # (.#) :: forall a b c q. Coercible b a => Ran j p b c -> q a b -> Ran j p a c # | |
Profunctor p => Functor (Ran j p a) Source # | |
ranSquare :: (Profunctor j, Profunctor p) => Square '[j, Ran j p] '[p] '[] '[] Source #
+-----+ j-\ | | @--p R-/ | +-----+
ranFactor :: (Profunctor j, Profunctor p, Profunctor q) => Square '[j, q] '[p] '[] '[] -> Square '[q] '[Ran j p] '[] '[] Source #
riftSquare :: (Profunctor j, Profunctor p) => Square '[Rift j p, j] '[p] '[] '[] Source #
+-----+ R-\ | | @--p j-/ | +-----+
riftFactor :: (Profunctor j, Profunctor p, Profunctor q) => Square '[q, j] '[p] '[] '[] -> Square '[q] '[Rift j p] '[] '[] Source #
+-----+ +-----+ q-\ | | | | @--p ==> q--@--R j-/ | | | +-----+ +-----+
Any square like the one on the left factors through riftSquare
.
riftFactor
gives the remaining square.