| Safe Haskell | Safe-Inferred |
|---|---|
| Language | GHC2021 |
Effectful.Labeled.Reader
Synopsis
- data Reader r :: Effect where
- runReader :: forall label r es a. HasCallStack => r -> Eff (Labeled label (Reader r) : es) a -> Eff es a
- ask :: forall label r es. (HasCallStack, Labeled label (Reader r) :> es) => Eff es r
- asks :: forall label r es a. (HasCallStack, Labeled label (Reader r) :> es) => (r -> a) -> Eff es a
- local :: forall label r es a. (HasCallStack, Labeled label (Reader r) :> es) => (r -> r) -> Eff es a -> Eff es a
- newtype Labeled (label :: k) (e :: Effect) :: Effect where
Effect
data Reader r :: Effect where Source #
Instances
| type DispatchOf (Reader r) Source # | |
Defined in Effectful.Internal.Effect.Dynamic | |
Handlers
Arguments
| :: forall label r es a. HasCallStack | |
| => r | The initial environment. |
| -> Eff (Labeled label (Reader r) : es) a | |
| -> Eff es a |
Run the Reader effect with the given initial environment (via
Effectful.Reader.Static).
Operations
ask :: forall label r es. (HasCallStack, Labeled label (Reader r) :> es) => Eff es r Source #
Fetch the value of the environment.
Arguments
| :: forall label r es a. (HasCallStack, Labeled label (Reader r) :> es) | |
| => (r -> a) | The function to apply to the environment. |
| -> Eff es a |
Re-exports
newtype Labeled (label :: k) (e :: Effect) :: Effect where Source #
Assign a label to an effect.
Note: labeled effects are best used together with the effectful-plugin package, as it significantly improves their usability.
The constructor is for sending labeled operations of a dynamically dispatched effect to the handler:
>>>import Effectful.Dispatch.Dynamic
>>>:{data X :: Effect where X :: X m Int type instance DispatchOf X = Dynamic :}
>>>:{runPureEff . runLabeled @"x" (interpret_ $ \X -> pure 333) $ do send $ Labeled @"x" X :} 333
Instances
| type DispatchOf (Labeled label e) Source # | |
Defined in Effectful.Labeled | |
| data StaticRep (Labeled label e) Source # | |
Defined in Effectful.Labeled | |