Profunctor.Monad.Lifts
class Cofunctor p => Lifts p where Source #
lmap i (lifts p j) = lifts (lmap i p) (i >>> j)
lmap
lifts
>>>
lifts p i <*> lifts q j = lifts (p <*> q) (i &&& j >>> uncurry ($))
<*>
&&&
uncurry
$
Methods
lifts :: p x a -> First p x a -> p x a Source #
liftsArr :: (Lifts p, Arrow (First p)) => p x a -> (x -> a) -> p x a Source #
liftsId :: Lifts p => p a a -> p a a Source #