Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type AmbiguousSend r e = IfStuck r (AmbiguousSendError TyVarR r e) (Pure (AmbiguousSendError (UnstuckRState r) r e))
- type WhenStuck expr b = IfStuck expr b NoErrorFcf
- type FirstOrder (e :: Effect) fn = UnlessStuck e (FirstOrderErrorFcf e fn)
- type family UnhandledEffect e where ...
- type family DefiningModule (t :: k) :: Symbol
- type family DefiningModuleForEffect (e :: k) :: Symbol where ...
Documentation
type AmbiguousSend r e = IfStuck r (AmbiguousSendError TyVarR r e) (Pure (AmbiguousSendError (UnstuckRState r) r e)) Source #
type WhenStuck expr b = IfStuck expr b NoErrorFcf Source #
Like IfStuck
, but specialized to the case when you don't want to do
anything if expr
isn't stuck.
type FirstOrder (e :: Effect) fn = UnlessStuck e (FirstOrderErrorFcf e fn) Source #
This constraint gives helpful error messages if you attempt to use a first-order combinator with a higher-order type.
type family UnhandledEffect e where ... Source #
UnhandledEffect e = IfStuck (DefiningModule e) (TypeError (UnhandledEffectMsg e)) (DoError (UnhandledEffectMsg e :$$: CheckDocumentation e)) |
type family DefiningModule (t :: k) :: Symbol Source #
The module this effect was originally defined in. This type family is used only for providing better error messages.
Calls to makeSem
will automatically give
instances of DefiningModule
.
Instances
type DefiningModule Final Source # | |
Defined in Polysemy.Final | |
type DefiningModule Async Source # | |
Defined in Polysemy.Async | |
type DefiningModule Resource Source # | |
Defined in Polysemy.Resource | |
type DefiningModule Writer Source # | |
Defined in Polysemy.Internal.Writer | |
type DefiningModule Reader Source # | |
Defined in Polysemy.Reader | |
type DefiningModule (Error :: Type -> (k -> Type) -> k -> Type) Source # | |
Defined in Polysemy.Error | |
type DefiningModule (State :: Type -> k -> Type -> Type) Source # | |
Defined in Polysemy.State | |
type DefiningModule (Output :: Type -> k -> Type -> Type) Source # | |
Defined in Polysemy.Output | |
type DefiningModule (AtomicState :: Type -> k -> Type -> Type) Source # | |
Defined in Polysemy.AtomicState | |
type DefiningModule (Trace :: k -> Type -> Type) Source # | |
Defined in Polysemy.Trace | |
type DefiningModule (Input :: k1 -> k2 -> k1 -> Type) Source # | |
Defined in Polysemy.Input |
type family DefiningModuleForEffect (e :: k) :: Symbol where ... Source #