Module

Control.Monad.Trans.Unlift

Package
purescript-monad-unlift
Repository
athanclark/purescript-monad-unlift

#MonadTransUnlift Source

class (MonadTransControl m t stT, SingletonFunctor stT, Functor m, Functor (t m)) <= MonadTransUnlift m t stT | t -> stT

Instances

#mkUnlift Source

mkUnlift :: forall stT a m t. SingletonFunctor stT => Functor m => (forall b. t m b -> m (stT b)) -> t m a -> m a

#Unlift Source

newtype Unlift t m

Constructors

  • Unlift (forall a. t m a -> m a)

#unlift Source

unlift :: forall m t. Unlift t m -> (forall a. t m a -> m a)

#askUnlift Source

askUnlift :: forall stT m t. MonadTransUnlift m t stT => Functor m => t m (Unlift t m)

#askRun Source

askRun :: forall stT a m t. MonadTransUnlift m t stT => Functor m => t m (t m a -> m a)

#MonadBaseUnlift Source

class (MonadBaseControl base m stM, SingletonFunctor stM, Functor base, Functor m) <= MonadBaseUnlift base m stM | m -> stM base

Instances

#mkUnliftBase Source

mkUnliftBase :: forall a stM m base. SingletonFunctor stM => Functor base => (forall b. m b -> base (stM b)) -> m a -> base a

#UnliftBase Source

newtype UnliftBase base m

Constructors

#unliftBase Source

unliftBase :: forall m base. UnliftBase base m -> (forall a. m a -> base a)

#askUnliftBase Source

askUnliftBase :: forall stM m base. MonadBaseUnlift base m stM => Applicative base => m (UnliftBase base m)

#askRunBase Source

askRunBase :: forall a stM m base. MonadBaseUnlift base m stM => Applicative base => m (m a -> base a)