first-class-instances-0.1.0.0: First class typeclass instances

Safe HaskellNone
LanguageHaskell2010

FCI.Control.Monad

Synopsis

Documentation

pattern Monad :: (Inst (Applicative m)) -> (forall (a :: Type) (b :: Type). m a -> (a -> m b) -> m b) -> (forall (a :: Type) (b :: Type). m a -> m b -> m b) -> (forall (a :: Type). a -> m a) -> (forall (a :: Type). String -> m a) -> Dict (Monad (m :: Type -> Type)) Source #

$sel:|>>=:Monad :: Dict (Monad (m :: Type -> Type)) -> forall (a :: Type) (b :: Type). m a -> (a -> m b) -> m b Source #

$sel:|>>:Monad :: Dict (Monad (m :: Type -> Type)) -> forall (a :: Type) (b :: Type). m a -> m b -> m b Source #

$sel:_return:Monad :: Dict (Monad (m :: Type -> Type)) -> forall (a :: Type). a -> m a Source #

$sel:_fail:Monad :: Dict (Monad (m :: Type -> Type)) -> forall (a :: Type). String -> m a Source #

bindMonad Source #

Arguments

:: (forall a. a -> m a)

return

-> (forall a b. m a -> (a -> m b) -> m b)

(>>=)

-> Inst (Monad m) 

Creates Dict instance from bind (>>=) definition.

joinMonad Source #

Arguments

:: (forall a b. (a -> b) -> m a -> m b)

fmap

-> (forall a. a -> m a)

return

-> (forall a. m (m a) -> m a)

join

-> Inst (Monad m) 

Creates Dict instance from join definition.

coerceMonad :: forall m. Newtype m => Inst (Monad m) Source #

Creates Dict instance for any type that can be "coerced out".