Module

Control.Monad.Morph

Package
purescript-mmorph
Repository
Thimoteus/purescript-mmorph

A port of Haskell's mmorph library

#generalize Source

generalize :: forall m a. Monad m => Identity a -> m a

#MMonad Source

class MMonad :: ((Type -> Type) -> Type -> Type) -> Constraintclass (MFunctor t, MonadTrans t) <= MMonad t  where

Members

  • embed :: forall n m b. Monad n => (forall a. m a -> t n a) -> t m b -> t n b

Instances

#squash Source

squash :: forall m t. Monad m => MMonad t => (t (t m)) ~> (t m)

#(>|>) Source

Operator alias for Control.Monad.Morph.composeKleisliRight (right-associative / precedence 2)

#(<|<) Source

Operator alias for Control.Monad.Morph.composeKleisliLeft (left-associative / precedence 2)

#(=<|) Source

Operator alias for Control.Monad.Morph.embed (right-associative / precedence 2)

#(|>=) Source

Operator alias for Control.Monad.Morph.flipEmbed (left-associative / precedence 2)

#composeKleisliRight Source

composeKleisliRight :: forall m1 m2 m3 t. MMonad t => Monad m3 => m1 ~> (t m2) -> m2 ~> (t m3) -> m1 ~> (t m3)

#composeKleisliLeft Source

composeKleisliLeft :: forall m1 m2 m3 t. MMonad t => Monad m3 => m2 ~> (t m3) -> m1 ~> (t m2) -> m1 ~> (t m3)

#flipEmbed Source

flipEmbed :: forall t m n a. MMonad t => Monad n => t m a -> m ~> (t n) -> t n a