bluefin-0.7.0.1: The Bluefin effect system
Safe HaskellNone
LanguageHaskell2010

Bluefin.IO

Synopsis

Documentation

You can run IO operations inside Eff.

Capability

data IOE (e :: Effects) #

Instances

Instances details
Handle IOE 
Instance details

Defined in Bluefin.Internal

CloneableHandle IOE 
Instance details

Defined in Bluefin.Internal.CloneableHandle

Methods

cloneableHandleImpl :: CloneableHandleD IOE

e <: es => OneWayCoercible (IOE e :: Type) (IOE es :: Type) 
Instance details

Defined in Bluefin.Internal

Methods

oneWayCoercibleImpl :: OneWayCoercibleD (IOE e) (IOE es) #

e <: es => MonadBaseControl IO (EffReader (IOE e) es) 
Instance details

Defined in Bluefin.Internal

Methods

liftBaseWith :: (RunInBase (EffReader (IOE e) es) IO -> IO a) -> EffReader (IOE e) es a

restoreM :: StM (EffReader (IOE e) es) a -> EffReader (IOE e) es a

e <: es => MonadBase IO (EffReader (IOE e) es) 
Instance details

Defined in Bluefin.Internal

Methods

liftBase :: IO α -> EffReader (IOE e) es α

e <: es => MonadIO (EffReader (IOE e) es) 
Instance details

Defined in Bluefin.Internal

Methods

liftIO :: IO a -> EffReader (IOE e) es a

e <: es => MonadUnliftIO (EffReader (IOE e) es) 
Instance details

Defined in Bluefin.Internal

Methods

withRunInIO :: ((forall a. EffReader (IOE e) es a -> IO a) -> IO b) -> EffReader (IOE e) es b

type StM (EffReader (IOE e) es) a 
Instance details

Defined in Bluefin.Internal

type StM (EffReader (IOE e) es) a = a

Handlers

runEff :: (forall (e :: Effects). IOE e -> Eff e a) -> IO a #

Effectful operations

effIO :: forall (e :: Effects) (es :: Effects) a. e <: es => IOE e -> IO a -> Eff es a #

rethrowIO :: forall ex (es :: Effects) (e1 :: Effects) (e2 :: Effects) r. (e1 <: es, e2 <: es, Exception ex) => IOE e1 -> Exception ex e2 -> Eff es r -> Eff es r #

IO type classes

withMonadIO :: forall (e :: Effects) (es :: Effects) r. e <: es => IOE e -> (forall (m :: Type -> Type). MonadIO m => m r) -> Eff es r #

withEffToIO_ :: forall (e :: Effects) (es :: Effects) a. e <: es => IOE e -> ((forall r. Eff es r -> IO r) -> IO a) -> Eff es a #

withEffToIOCloneHandle :: forall (e1 :: Effects) (es :: Effects) h a. (e1 <: es, CloneableHandle h) => IOE e1 -> h es -> ((forall r. (forall (e :: Effects). IOE e -> h e -> Eff e r) -> IO r) -> IO a) -> Eff es a #

EffReader

data EffReader r (es :: Effects) a #

Instances

Instances details
e <: es => MonadBaseControl IO (EffReader (IOE e) es) 
Instance details

Defined in Bluefin.Internal

Methods

liftBaseWith :: (RunInBase (EffReader (IOE e) es) IO -> IO a) -> EffReader (IOE e) es a

restoreM :: StM (EffReader (IOE e) es) a -> EffReader (IOE e) es a

e <: es => MonadBase IO (EffReader (IOE e) es) 
Instance details

Defined in Bluefin.Internal

Methods

liftBase :: IO α -> EffReader (IOE e) es α

e <: es => MonadFail (EffReader (Exception String e) es) 
Instance details

Defined in Bluefin.Internal

Methods

fail :: String -> EffReader (Exception String e) es a

e <: es => MonadIO (EffReader (IOE e) es) 
Instance details

Defined in Bluefin.Internal

Methods

liftIO :: IO a -> EffReader (IOE e) es a

Applicative (EffReader r es) 
Instance details

Defined in Bluefin.Internal

Methods

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) 
Instance details

Defined in Bluefin.Internal

Methods

fmap :: (a -> b) -> EffReader r es a -> EffReader r es b

(<$) :: a -> EffReader r es b -> EffReader r es a

Monad (EffReader r es) 
Instance details

Defined in Bluefin.Internal

Methods

(>>=) :: EffReader r es a -> (a -> EffReader r es b) -> EffReader r es b

(>>) :: EffReader r es a -> EffReader r es b -> EffReader r es b

return :: a -> EffReader r es a

e <: es => MonadUnliftIO (EffReader (IOE e) es) 
Instance details

Defined in Bluefin.Internal

Methods

withRunInIO :: ((forall a. EffReader (IOE e) es a -> IO a) -> IO b) -> EffReader (IOE e) es b

type StM (EffReader (IOE e) es) a 
Instance details

Defined in Bluefin.Internal

type StM (EffReader (IOE e) es) a = 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 #

Deprecated versions

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 #

runEff_ :: (forall (e :: Effects). IOE e -> Eff e a) -> IO a #