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

Safe HaskellNone
LanguageHaskell2010

Control.Effect.Reader

Contents

Synopsis

Documentation

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

Instances

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

data Reader r a Source #

An effect that provides an implicit environment.

Instances

type Is (* -> * -> *) Reader f Source # 
type Is (* -> * -> *) Reader f

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

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

ask :: EffectReader r l => Effect l r Source #

Retrieves the current environment.

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

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

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

Runs a computation with a modified environment.

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

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

Orphan instances

(Member (* -> *) (Reader r) l, (~) (* -> *) (Reader r) (InstanceOf (* -> * -> *) Reader l)) => MonadReader r (Effect l) Source # 

Methods

ask :: Effect l r #

local :: (r -> r) -> Effect l a -> Effect l a #

reader :: (r -> a) -> Effect l a #