effin-0.2.1.1: A Typeable-free implementation of extensible effects

Safe HaskellNone
LanguageHaskell2010

Control.Effect.Reader

Synopsis

Documentation

class MemberEffect Reader (Reader r) l => EffectReader r l

Instances

MemberEffect (* -> * -> *) Reader (Reader r) l => EffectReader r l 

data Reader r a

An effect that provides an implicit environment.

Instances

Functor (Reader r) 
type Is (* -> * -> *) Reader f 

runReader :: r -> Effect (Reader r :+ l) a -> Effect l a

Completely handles a Reader effect by providing an environment value to be used throughout the computation.

ask :: EffectReader r l => Effect l r

Retrieves the current environment.

asks :: EffectReader r l => (r -> a) -> Effect l a

Retrieves a value that is a function of the current environment.

local :: EffectReader r l => (r -> r) -> Effect l a -> Effect l a

Runs a computation with a modified environment.

stateReader :: EffectState s l => Effect (Reader s :+ l) a -> Effect l a

Executes a reader computation which obtains its environment value from a state effect.