effectful-core
Safe HaskellSafe-Inferred
LanguageHaskell2010

Effectful.Internal.MTL

Description

Definitions and instances for MTL compatibility.

This module is intended for internal use only, and may change without warning in subsequent releases.

Synopsis

Documentation

data Error e :: Effect where Source #

Provide the ability to handle errors of type e.

Constructors

ThrowErrorWith :: (e -> String) -> e -> Error e m a

Since: 2.4.0.0

CatchError :: m a -> (CallStack -> e -> m a) -> Error e m a 

Instances

Instances details
type DispatchOf (Error e) Source # 
Instance details

Defined in Effectful.Internal.MTL

data Reader r :: Effect where Source #

Constructors

Ask :: Reader r m r 
Local :: (r -> r) -> m a -> Reader r m a 

Instances

Instances details
type DispatchOf (Reader r) Source # 
Instance details

Defined in Effectful.Internal.MTL

data State s :: Effect where Source #

Provide access to a mutable value of type s.

Constructors

Get :: State s m s 
Put :: s -> State s m () 
State :: (s -> (a, s)) -> State s m a 
StateM :: (s -> m (a, s)) -> State s m a 

Instances

Instances details
type DispatchOf (State s) Source # 
Instance details

Defined in Effectful.Internal.MTL

data Writer w :: Effect where Source #

Provide access to a write only value of type w.

Constructors

Tell :: w -> Writer w m () 
Listen :: m a -> Writer w m (a, w) 

Instances

Instances details
type DispatchOf (Writer w) Source # 
Instance details

Defined in Effectful.Internal.MTL

Orphan instances

(Show e, Error e :> es, MonadError e (Eff es)) => MonadError e (Eff es) Source #

Instance included for compatibility with existing code.

Instance details

Methods

throwError :: e -> Eff es a #

catchError :: Eff es a -> (e -> Eff es a) -> Eff es a #

(Reader r :> es, MonadReader r (Eff es)) => MonadReader r (Eff es) Source #

Instance included for compatibility with existing code.

Instance details

Methods

ask :: Eff es r #

local :: (r -> r) -> Eff es a -> Eff es a #

reader :: (r -> a) -> Eff es a #

(State s :> es, MonadState s (Eff es)) => MonadState s (Eff es) Source #

Instance included for compatibility with existing code.

Instance details

Methods

get :: Eff es s #

put :: s -> Eff es () #

state :: (s -> (a, s)) -> Eff es a #

(Monoid w, Writer w :> es, MonadWriter w (Eff es)) => MonadWriter w (Eff es) Source #

Instance included for compatibility with existing code.

Instance details

Methods

writer :: (a, w) -> Eff es a #

tell :: w -> Eff es () #

listen :: Eff es a -> Eff es (a, w) #

pass :: Eff es (a, w -> w) -> Eff es a #