Safe Haskell | None |
---|---|
Language | Haskell2010 |
Effectful.Reader.Dynamic
Contents
Description
The dynamically dispatched variant of the Reader
effect.
Note: unless you plan to change interpretations at runtime, it's recommended to use the statically dispatched variant, i.e. Effectful.Reader.Static.
Synopsis
- data Reader r (a :: Type -> Type) b where
- runReader :: forall r (es :: [(Type -> Type) -> Type -> Type]) a. HasCallStack => r -> Eff (Reader r ': es) a -> Eff es a
- withReader :: forall r1 r2 (es :: [(Type -> Type) -> Type -> Type]) a. HasCallStack => (r1 -> r2) -> Eff (Reader r2 ': es) a -> Eff (Reader r1 ': es) a
- ask :: forall r (es :: [Effect]). (HasCallStack, Reader r :> es) => Eff es r
- asks :: forall r (es :: [Effect]) a. (HasCallStack, Reader r :> es) => (r -> a) -> Eff es a
- local :: forall r (es :: [Effect]) a. (HasCallStack, Reader r :> es) => (r -> r) -> Eff es a -> Eff es a
Effect
data Reader r (a :: Type -> Type) b where Source #
Constructors
Ask :: forall r (a :: Type -> Type). Reader r a r | |
Local :: forall r (a :: Type -> Type) b. (r -> r) -> a b -> Reader r a b |
Instances
type DispatchOf (Reader r) Source # | |
Defined in Effectful.Reader.Dynamic |
Handlers
Arguments
:: forall r (es :: [(Type -> Type) -> Type -> Type]) a. HasCallStack | |
=> r | The initial environment. |
-> Eff (Reader r ': es) a | |
-> Eff es a |
Run the Reader
effect with the given initial environment (via
Effectful.Reader.Static).
Arguments
:: forall r1 r2 (es :: [(Type -> Type) -> Type -> Type]) a. HasCallStack | |
=> (r1 -> r2) | The function to modify the environment. |
-> Eff (Reader r2 ': es) a | Computation to run in the modified environment. |
-> Eff (Reader r1 ': es) a |
Execute a computation in a modified environment.
Since: 1.1.0.0
Operations
ask :: forall r (es :: [Effect]). (HasCallStack, Reader r :> es) => Eff es r Source #
Fetch the value of the environment.
Arguments
:: forall r (es :: [Effect]) a. (HasCallStack, Reader r :> es) | |
=> (r -> a) | The function to apply to the environment. |
-> Eff es a |