Module

Control.Monad.Morph

Package
purescript-mmorph
Repository
Thimoteus/purescript-mmorph

A port of Haskell's mmorph library

#generalize Source

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

#MMonad Source

class (MFunctor t, MonadTrans t) <= MMonad t  where

Members

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

Instances

#squash Source

squash :: forall t m. 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 t m3 m2 m1. MMonad t => Monad m3 => m1 ~> (t m2) -> m2 ~> (t m3) -> m1 ~> (t m3)

#composeKleisliLeft Source

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

#flipEmbed Source

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