Copyright | (c) 2023-2025 Sayo contributors |
---|---|
License | MPL-2.0 (see the file LICENSE) |
Maintainer | ymdfield@outlook.jp |
Safe Haskell | Safe-Inferred |
Language | GHC2021 |
Data.Effect.Input
Description
This module provides the Input
effect, comes
from Polysemy.Input
in the polysemy
package.
Realizes input of values from the external world.
Synopsis
- data Input i :: Effect where
- data InputLabel
- input'_ :: forall (i :: Type) f es ff c. (Free c ff, f ~ Eff ff es, In (Input i) es) => f i
- input'' :: forall tag (i :: Type) f es ff c. (Free c ff, f ~ Eff ff es, (:>) (Tagged tag (Input i)) es) => f i
- input' :: forall key (i :: Type) f es ff c. (Free c ff, f ~ Eff ff es, Has key (Input i) es) => f i
- input :: forall (i :: Type) f es ff c. (Free c ff, f ~ Eff ff es, (:>) (Input i) es) => f i
- inputs :: forall i es ff a c. (Input i :> es, Functor (Eff ff es), Free c ff) => (i -> a) -> Eff ff es a
- runInputEff :: forall i es ff a c. Free c ff => Eff ff es i -> Eff ff (Input i ': es) a -> Eff ff es a
- runInputConst :: forall i es ff a c. (Applicative (Eff ff es), Free c ff) => i -> Eff ff (Input i ': es) a -> Eff ff es a
Documentation
data Input i :: Effect where Source #
A general effect representing input of values from the external world.
Instances
FirstOrder (Input i) Source # | |
Defined in Data.Effect.Input | |
HFunctor (Input i) Source # | |
Defined in Data.Effect.Input | |
type LabelOf (Input i) Source # | |
Defined in Data.Effect.Input | |
type OrderOf (Input i) Source # | |
Defined in Data.Effect.Input |
data InputLabel Source #
input'_ :: forall (i :: Type) f es ff c. (Free c ff, f ~ Eff ff es, In (Input i) es) => f i Source #
Retrieve a value input from the external world.
input'' :: forall tag (i :: Type) f es ff c. (Free c ff, f ~ Eff ff es, (:>) (Tagged tag (Input i)) es) => f i Source #
Retrieve a value input from the external world.
input' :: forall key (i :: Type) f es ff c. (Free c ff, f ~ Eff ff es, Has key (Input i) es) => f i Source #
Retrieve a value input from the external world.
input :: forall (i :: Type) f es ff c. (Free c ff, f ~ Eff ff es, (:>) (Input i) es) => f i Source #
Retrieve a value input from the external world.
inputs :: forall i es ff a c. (Input i :> es, Functor (Eff ff es), Free c ff) => (i -> a) -> Eff ff es a Source #
Returns the value obtained by transforming the input value using the given function.
runInputEff :: forall i es ff a c. Free c ff => Eff ff es i -> Eff ff (Input i ': es) a -> Eff ff es a Source #
Interprets the Input
effect by executing the given input handler each time an input is required.
runInputConst :: forall i es ff a c. (Applicative (Eff ff es), Free c ff) => i -> Eff ff (Input i ': es) a -> Eff ff es a Source #
Interprets the Input
effect by providing the given constant as input.