acme-iot-0.1.0.1: IO monad transformer

Copyright(c) mniip 2016
LicenseMIT
Maintainermniip@mniip.com
Stabilitynone
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Trans.IO

Contents

Description

IO transformer capable of adding IO capabilities to any monad.

The resulting computations are lazy in the sense of being lazy IO.

Synopsis

Documentation

data IORet# a Source #

Datatype used to fit unlifted tuples in lifted containers.

Constructors

IORet# 

Fields

Instances

Functor IORet# Source # 

Methods

fmap :: (a -> b) -> IORet# a -> IORet# b #

(<$) :: a -> IORet# b -> IORet# a #

The IOT monad transformer

data IOT m a Source #

An IO Transformer parameterized by m - the inner monad.

Constructors

IOT# 

Fields

Instances

MonadTrans IOT Source # 

Methods

lift :: Monad m => m a -> IOT m a #

MonadError e m => MonadError e (IOT m) Source # 

Methods

throwError :: e -> IOT m a #

catchError :: IOT m a -> (e -> IOT m a) -> IOT m a #

MonadReader r m => MonadReader r (IOT m) Source # 

Methods

ask :: IOT m r #

local :: (r -> r) -> IOT m a -> IOT m a #

reader :: (r -> a) -> IOT m a #

MonadState s m => MonadState s (IOT m) Source # 

Methods

get :: IOT m s #

put :: s -> IOT m () #

state :: (s -> (a, s)) -> IOT m a #

MonadWriter w m => MonadWriter w (IOT m) Source # 

Methods

writer :: (a, w) -> IOT m a #

tell :: w -> IOT m () #

listen :: IOT m a -> IOT m (a, w) #

pass :: IOT m (a, w -> w) -> IOT m a #

Monad m => Monad (IOT m) Source # 

Methods

(>>=) :: IOT m a -> (a -> IOT m b) -> IOT m b #

(>>) :: IOT m a -> IOT m b -> IOT m b #

return :: a -> IOT m a #

fail :: String -> IOT m a #

Functor m => Functor (IOT m) Source # 

Methods

fmap :: (a -> b) -> IOT m a -> IOT m b #

(<$) :: a -> IOT m b -> IOT m a #

(Functor m, Monad m) => Applicative (IOT m) Source # 

Methods

pure :: a -> IOT m a #

(<*>) :: IOT m (a -> b) -> IOT m a -> IOT m b #

(*>) :: IOT m a -> IOT m b -> IOT m b #

(<*) :: IOT m a -> IOT m b -> IOT m a #

Monad m => MonadIO (IOT m) Source # 

Methods

liftIO :: IO a -> IOT m a #

(Functor m, MonadPlus m) => Alternative (IOT m) Source # 

Methods

empty :: IOT m a #

(<|>) :: IOT m a -> IOT m a -> IOT m a #

some :: IOT m a -> IOT m [a] #

many :: IOT m a -> IOT m [a] #

MonadPlus m => MonadPlus (IOT m) Source # 

Methods

mzero :: IOT m a #

mplus :: IOT m a -> IOT m a -> IOT m a #

MonadCont m => MonadCont (IOT m) Source # 

Methods

callCC :: ((a -> IOT m b) -> IOT m a) -> IOT m a #

runIOT :: Functor m => IOT m a -> IO (m a) Source #

Run an IO computation. Note that this might return an interleaved result.

hoistIOT :: (m (IORet# a) -> n (IORet# b)) -> IOT m a -> IOT n b Source #

Change the underlying monad in an IO computation. If MagicHash is not in use, a natural transformation could be supplied, or the Functor instance of IORet# could be made use of.

fromIO :: Functor m => IO (m a) -> IOT m a Source #

Create an IO computation from an IO of a monadic computation.

sequenceIO :: Functor m => m (IO a) -> IOT m a Source #

Create an IO computation from a monadic computation of IO.