bluefin-0.0.15.0: The Bluefin effect system
Safe HaskellSafe-Inferred
LanguageHaskell2010

Bluefin.Reader

Synopsis

Documentation

Reader is Bluefin's version of the Control.Monad.Trans.Reader monad.

Handle

data Reader r (e :: Effects) #

Instances

Instances details
Handle (Reader r) 
Instance details

Defined in Bluefin.Internal

Methods

mapHandle :: forall (e :: Effects) (es :: Effects). e :> es => Reader r e -> Reader r es #

Handlers

runReader #

Arguments

:: forall r (es :: Effects) a. r

Initial value for Reader.

-> (forall (e :: Effects). Reader r e -> Eff (e :& es) a) 
-> Eff es a 

Effectful operations

ask #

Arguments

:: forall (e :: Effects) (es :: Effects) r. e :> es 
=> Reader r e

͘

-> Eff es r 

Read the value. Note that ask has the property that these two operations are always equivalent:

do
  r1 <- ask re
  r2 <- ask re
  pure (r1, r2)
do
  r <- ask re
  pure (r, r)

asks #

Arguments

:: forall (e :: Effects) (es :: Effects) r a. e :> es 
=> Reader r e 
-> (r -> a)

Read the value modified by this function

-> Eff es a 

Read the value modified by a function

local #

Arguments

:: forall (e1 :: Effects) (es :: Effects) r a. e1 :> es 
=> Reader r e1 
-> (r -> r)

In the body, the reader value is modified by this function.

-> Eff es a

Body

-> Eff es a