Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Type-safe indexing for Env
.
This module is intended for internal use only, and may change without warning in subsequent releases.
Documentation
class (e :: Effect) :> (es :: [Effect]) where Source #
A constraint that requires that a particular effect e
is a member of the
type-level list es
. This is used to parameterize an Eff
computation over an arbitrary list of effects, so long as e
is somewhere
in the list.
For example, a computation that only needs access to a mutable value of type
Integer
would have the following type:
State
Integer
:>
es =>Eff
es ()
Nothing
reifyIndex :: Int Source #
Get the position of e
in es
.
Note: GHC is kind enough to cache these values as they're top level CAFs,
so the lookup is amortized O(1)
without any language level tricks.
Instances
(TypeError (('Text "There is no handler for '" :<>: 'ShowType e) :<>: 'Text "' in the context") :: Constraint) => e :> ('[] :: [Effect]) Source # | |
Defined in Effectful.Internal.Effect reifyIndex :: Int Source # | |
e :> (e ': es) Source # | |
Defined in Effectful.Internal.Effect reifyIndex :: Int Source # | |
e :> es => e :> (x ': es) Source # | |
Defined in Effectful.Internal.Effect reifyIndex :: Int Source # |
type family xs :>> es :: Constraint where ... Source #
Deprecated: Usage of (:>>) slows down GHC too much, so it will be removed in 3.0.0.0. See https://github.com/haskell-effectful/effectful/issues/52#issuecomment-1269155485 for more information.
Convenience operator for expressing that a function uses multiple effects
in a more concise way than enumerating them all with (:>)
.
[E1, E2, ..., En]:>>
es ≡ (E1:>
es, E2:>
es, ..., En :> es)
class Subset (xs :: [Effect]) (es :: [Effect]) where Source #
Provide evidence that xs
is a subset of es
.
Nothing
reifyIndices :: [Int] Source #
Instances
Subset ('[] :: [Effect]) es Source # | |
Defined in Effectful.Internal.Effect reifyIndices :: [Int] Source # | |
(e :> es, Subset xs es) => Subset (e ': xs) es Source # | |
Defined in Effectful.Internal.Effect reifyIndices :: [Int] Source # |