Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data IOE (e :: Effects)
- runEff :: (forall (e :: Effects) (es :: Effects). IOE e -> Eff (e :& es) a) -> IO a
- effIO :: forall (e :: Effects) (es :: Effects) a. e :> es => IOE e -> IO a -> Eff es a
- withMonadIO :: forall (e :: Effects) (es :: Effects) r. e :> es => IOE e -> (forall (m :: Type -> Type). MonadIO m => m r) -> Eff es r
- withEffToIO :: forall (e2 :: Effects) (es :: Effects) a. e2 :> es => ((forall r. (forall (e1 :: Effects). IOE e1 -> Eff (e1 :& es) r) -> IO r) -> IO a) -> IOE e2 -> Eff es a
- data EffReader r (es :: Effects) a
- effReader :: forall r (es :: Effects) a. (r -> Eff es a) -> EffReader r es a
- runEffReader :: forall r (es :: Effects) a. r -> EffReader r es a -> Eff es a
Documentation
You can run IO
operations inside Eff
.
Handle
Handle that allows you to run IO
operations
Handlers
Effectful operations
IO type classes
EffReader
data EffReader r (es :: Effects) a #
Because doing IO
operations inside Eff
requires a value-level
argument we can't give IO
-related instances to Eff
directly.
Instead we wrap it in EffReader
.
Instances
e :> es => MonadBaseControl IO (EffReader (IOE e) es) | |
e :> es => MonadBase IO (EffReader (IOE e) es) | |
e :> es => MonadFail (EffReader (Exception String e) es) | |
e :> es => MonadIO (EffReader (IOE e) es) | |
Applicative (EffReader r es) | |
Defined in Bluefin.Internal pure :: a -> EffReader r es a # (<*>) :: EffReader r es (a -> b) -> EffReader r es a -> EffReader r es b # liftA2 :: (a -> b -> c) -> EffReader r es a -> EffReader r es b -> EffReader r es c # (*>) :: EffReader r es a -> EffReader r es b -> EffReader r es b # (<*) :: EffReader r es a -> EffReader r es b -> EffReader r es a # | |
Functor (EffReader r es) | |
Monad (EffReader r es) | |
e :> es => MonadUnliftIO (EffReader (IOE e) es) | |
Defined in Bluefin.Internal | |
type StM (EffReader (IOE e) es) a | |
Defined in Bluefin.Internal |
runEffReader :: forall r (es :: Effects) a. r -> EffReader r es a -> Eff es a #