Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Eff (es :: [Effect]) a
- runEff :: Eff '[] a -> IO a
- type Effect = Type
- class (e :: Effect) :> (es :: [Effect])
- data IOE
- runIOE :: Eff '[IOE] a -> Eff '[] a
- impureEff :: (Env es -> IO a) -> Eff es a
- impureEff_ :: IO a -> Eff es a
- runEffect :: e -> Eff (e ': es) a -> Eff es (a, e)
- evalEffect :: e -> Eff (e ': es) a -> Eff es a
- execEffect :: e -> Eff (e ': es) a -> Eff es e
- getEffect :: e :> es => Eff es e
- putEffect :: e :> es => e -> Eff es ()
- stateEffect :: e :> es => (e -> (a, e)) -> Eff es a
- localEffect :: e :> es => (e -> e) -> Eff es a -> Eff es a
- listenEffect :: (e :> es, Monoid e) => Eff es a -> Eff es (a, e)
- readerEffectM :: e :> es => (e -> Eff es a) -> Eff es a
- stateEffectM :: e :> es => (e -> Eff es (a, e)) -> Eff es a
The Eff
monad
data Eff (es :: [Effect]) a Source #
Instances
IOE :> es => MonadBase IO (Eff es) Source # | |
Defined in Effectful.Internal.Monad | |
IOE :> es => MonadBaseControl IO (Eff es) Source # | |
Reader r :> es => MonadReader r (Eff es) Source # | |
State s :> es => MonadState s (Eff es) Source # | |
(Writer w :> es, Monoid w) => MonadWriter w (Eff es) Source # | |
Monad (Eff es) Source # | |
Functor (Eff es) Source # | |
Applicative (Eff es) Source # | |
IOE :> es => MonadIO (Eff es) Source # | |
Defined in Effectful.Internal.Monad | |
MonadThrow (Eff es) Source # | |
Defined in Effectful.Internal.Monad | |
MonadCatch (Eff es) Source # | |
MonadMask (Eff es) Source # | |
(IOE :> es, Resource :> es) => MonadResource (Eff es) Source # | |
Defined in Effectful.Resource liftResourceT :: ResourceT IO a -> Eff es a # | |
IOE :> es => MonadUnliftIO (Eff es) Source # | |
Defined in Effectful.Internal.Monad | |
type StM (Eff es) a Source # | |
Defined in Effectful.Internal.Monad |
The IO effect
Execution of IO in effect handlers
impureEff_ :: IO a -> Eff es a Source #
Helpers for defining new effects
Running
evalEffect :: e -> Eff (e ': es) a -> Eff es a Source #
execEffect :: e -> Eff (e ': es) a -> Eff es e Source #
Retrieval and modification
stateEffect :: e :> es => (e -> (a, e)) -> Eff es a Source #