| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Bluefin.Capability.Ask
Synopsis
- type Ask = Reader
- runAsk :: forall r (es :: Effects) a. r -> (forall (e :: Effects). Ask r e -> Eff (e :& es) a) -> Eff es a
- ask :: forall (e :: Effects) (es :: Effects) r. e <: es => Reader r e -> Eff es r
- asks :: forall (e :: Effects) (es :: Effects) r a. e <: es => Reader r e -> (r -> a) -> Eff es a
- local :: forall (e1 :: Effects) (es :: Effects) r a. e1 <: es => Reader r e1 -> (r -> r) -> Eff es a -> Eff es a
Documentation
Ask is Bluefin's version of the
Control.Monad.Trans.Reader monad. local allows you to
locally override the asked value in a well-scoped way. The
original value will be restored when you exit the local block
regardless of whether the exit was normal or via an exception.
Capability
Handlers
Effectful operations
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)