| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Bluefin.Eff
Synopsis
- data Eff (es :: Effects) a
- runPureEff :: (forall (es :: Effects). Eff es a) -> a
- runEff :: (forall (e :: Effects). IOE e -> Eff e a) -> IO a
- bracket :: forall (es :: Effects) a b. Eff es a -> (a -> Eff es ()) -> (a -> Eff es b) -> Eff es b
- finally :: forall (es :: Effects) b. Eff es b -> Eff es () -> Eff es b
- 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 (<:) = (:>)
- type (:&) = 'Union
- runEff_ :: (forall (e :: Effects). IOE e -> Eff e a) -> IO a
Eff monad
Instances
| e <: es => OneWayCoercible (Eff e r :: Type) (Eff es r :: Type) | |
Defined in Bluefin.Internal Methods oneWayCoercibleImpl :: OneWayCoercibleD (Eff e r) (Eff es r) # | |
| Applicative (Eff es) | |
| Functor (Eff es) | |
| Monad (Eff es) | |
| MonadFix (Eff es) | |
Defined in Bluefin.Internal | |
| e <: es => OneWayCoercible (Eff e :: Type -> Type) (Eff es :: Type -> Type) | |
Defined in Bluefin.Internal Methods oneWayCoercibleImpl :: OneWayCoercibleD (Eff e) (Eff es) # | |
Run an Eff
runPureEff :: (forall (es :: Effects). Eff es a) -> a #
Resource management
bracket :: forall (es :: Effects) a b. Eff es a -> (a -> Eff es ()) -> (a -> Eff es b) -> Eff es b #
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.
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 #
Effect tracking
Instances
class (es1 :: Effects) :> (es2 :: Effects) #
Instances
| e :> e | |
Defined in Bluefin.Internal | |
| e :> (e :& es) | |
Defined in Bluefin.Internal | |
| e :> es => e :> (x :& es) | |
Defined in Bluefin.Internal | |