| Safe Haskell | Safe-Inferred |
|---|---|
| Language | GHC2021 |
Effectful.Labeled.Input
Synopsis
- data Input i :: Effect
- runInput :: forall label i es a. HasCallStack => i -> Eff (Labeled label (Input i) : es) a -> Eff es a
- runInputAction :: forall label i es a. HasCallStack => (HasCallStack => Eff es i) -> Eff (Labeled label (Input i) : es) a -> Eff es a
- input :: forall label i es. (HasCallStack, Labeled label (Input i) :> es) => Eff es i
- inputs :: forall label i es a. (HasCallStack, Labeled label (Input i) :> es) => (i -> a) -> Eff es a
- newtype Labeled (label :: k) (e :: Effect) :: Effect where
Effect
data Input i :: Effect Source #
Provide access to values of type i.
Instances
| type DispatchOf (Input i) Source # | |
Defined in Effectful.Input.Dynamic | |
Handlers
Arguments
| :: forall label i es a. HasCallStack | |
| => i | The input value. |
| -> Eff (Labeled label (Input i) : es) a | |
| -> Eff es a |
Run the Input effect with the given value.
Arguments
| :: forall label i es a. HasCallStack | |
| => (HasCallStack => Eff es i) | The action for input generation. |
| -> Eff (Labeled label (Input i) : es) a | |
| -> Eff es a |
Run the Input effect with the given action that supplies values.
Operations
input :: forall label i es. (HasCallStack, Labeled label (Input i) :> es) => Eff es i Source #
Fetch the value.
Arguments
| :: forall label i es a. (HasCallStack, Labeled label (Input i) :> es) | |
| => (i -> a) | The function to apply to the value. |
| -> 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 | |