Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Eff (es :: Effects) a
- runPureEff :: (forall (es :: Effects). Eff es a) -> a
- runEff :: (forall (e :: Effects) (es :: Effects). IOE e -> Eff (e :& es) a) -> IO a
- withMonadIO :: forall (e :: Effects) (es :: Effects) r. e :> es => IOE e -> (forall (m :: Type -> Type). MonadIO m => m r) -> Eff es r
- withMonadFail :: forall (e :: Effects) (es :: Effects) r. e :> es => Exception String e -> (forall (m :: Type -> Type). MonadFail m => m r) -> Eff es r
- data Effects
- class (es1 :: Effects) :> (es2 :: Effects)
- type (:&) = 'Union
Eff
monad
Run an Eff
runPureEff :: (forall (es :: Effects). Eff es a) -> a Source #
Run an Eff
that doesn't contain any unhandled effects.
Type classes
See Bluefin.Eff.IO for the most direct way of doing I/O in
Bluefin. If you really want to use MonadIO
you can use
withMonadIO
.
Effect tracking
class (es1 :: Effects) :> (es2 :: Effects) Source #
Effect subset constraint
Instances
e :> e | A set of effects |
Defined in Bluefin.Internal | |
e :> (e :& es) |
|
Defined in Bluefin.Internal | |
e :> es => e :> (x :& es) | If |
Defined in Bluefin.Internal |