acme-iot-0.1.0.0: 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 #

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

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

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