Module

Ran

An implementation of the right Kan-extension.

#Ran

type Ran f g a = forall b. (a -> f b) -> g b

#apply

apply :: forall a b f g. (g ~> f) -> Ran f g (a -> b) -> Ran f g a -> Ran f g b

#bind

bind :: forall a b f g. (g ~> f) -> Ran f g a -> (a -> Ran f g b) -> Ran f g b

#lift

lift :: forall f g h. Functor h => (forall a. h (f a) -> g a) -> h ~> (Ran f g)

#lift'

lift' :: forall f g. Comonad f => Functor g => g ~> (Ran f g)

#liftAff

liftAff :: forall f g. MonadAff f => (f ~> g) -> Aff ~> (Ran f g)

#liftEffect

liftEffect :: forall f g. MonadEffect f => (f ~> g) -> Effect ~> (Ran f g)

#lower

lower :: forall a f g h. (h ~> (Ran f g)) -> h (f a) -> g a

#lower'

lower' :: forall f g. Applicative f => (Ran f g) ~> g

#map

map :: forall a b f g. (a -> b) -> Ran f g a -> Ran f g b

#pure

pure :: forall a f g. (f ~> g) -> a -> Ran f g a

Modules