Portability  Rank2Types, TFs 

Stability  provisional 
Maintainer  Edward Kmett <ekmett@gmail.com> 
Safe Haskell  Trustworthy 
 newtype Rift p q a b = Rift {
 runRift :: forall x. p x a > q x b
 decomposeRift :: Procompose q (Rift q p) a b > p a b
 precomposeRift :: Profunctor q => Procompose (Rift p (>)) q a b > Rift p q a b
Documentation
This represents the right Kan lift of a Profunctor
q
along a Profunctor
p
in a limited version of the 2category of Profunctors where the only object is the category Hask, 1morphisms are profunctors composed and compose with Profunctor composition, and 2morphisms are just natural transformations.
~ (* > * > *) p q => Category (Rift p q) 

(Profunctor p, Profunctor q) => Profunctor (Rift p q)  
Profunctor q => Functor (Rift p q a) 
decomposeRift :: Procompose q (Rift q p) a b > p a bSource
The 2morphism that defines a right Kan lift.
Note: When q
is left adjoint to
then Rift
q (>)decomposeRift
is the counit
of the adjunction.
precomposeRift :: Profunctor q => Procompose (Rift p (>)) q a b > Rift p q a bSource