std.effect.reader

Implementation of the Reader effect

Types

type Reader s r a = 
    | Ask : Reader s r s
    .. r

The Reader effects provides a shared, immutable environment for the effectful functions using it

Values

let ask : forall r . forall s . Eff [| reader : Reader s | r |] s

Retrieve the value from the environment

let asks f : forall r a . forall s . (s -> a) -> Eff [| reader : Reader s | r |] a

Retrieve the value from the environment while applying f to it

let local f eff : forall a r .
        forall s .
            (s -> s)
                -> Eff [| reader : Reader s | r |] a
                -> Eff [| reader : Reader s | r |] a

Runs a computation in a modified environment.

let run_reader s eff : forall a r .
        forall s . s -> Eff [| reader : Reader s | r |] a -> Eff [| | r |] a

Eliminates the Reader effect