indexed-extras-0.2: Indexed functors, monads and comonads that require extensions to Haskell98

Copyright(C) 2008 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerReiner Pope <reiner.pope@gmail.com>
Stabilityexperimental
Portabilityportable (although the MTL instances aren't!)
Safe HaskellNone
LanguageHaskell98

Control.Monad.Indexed.State

Description

 

Documentation

class IxMonad m => IxMonadState m where Source #

Minimal complete definition

iget, iput

Methods

iget :: m i i i Source #

iput :: j -> m i j () Source #

Instances

IxMonadState IxState Source # 

Methods

iget :: IxState i i i Source #

iput :: j -> IxState i j () Source #

Monad m => IxMonadState (IxStateT m) Source # 

Methods

iget :: IxStateT m i i i Source #

iput :: j -> IxStateT m i j () Source #

imodify :: IxMonadState m => (i -> j) -> m i j () Source #

igets :: IxMonadState m => (i -> a) -> m i i a Source #

newtype IxStateT m i j a Source #

Constructors

IxStateT 

Fields

Instances

IxMonadTrans IxStateT Source # 

Methods

ilift :: Monad m => m a -> IxStateT m i i a #

Monad m => MonadState i (IxStateT m i i) Source # 

Methods

get :: IxStateT m i i i #

put :: i -> IxStateT m i i () #

state :: (i -> (a, i)) -> IxStateT m i i a #

MonadReader r m => MonadReader r (IxStateT m i i) Source # 

Methods

ask :: IxStateT m i i r #

local :: (r -> r) -> IxStateT m i i a -> IxStateT m i i a #

reader :: (r -> a) -> IxStateT m i i a #

MonadError e m => MonadError e (IxStateT m i i) Source # 

Methods

throwError :: e -> IxStateT m i i a #

catchError :: IxStateT m i i a -> (e -> IxStateT m i i a) -> IxStateT m i i a #

MonadWriter w m => MonadWriter w (IxStateT m i i) Source # 

Methods

writer :: (a, w) -> IxStateT m i i a #

tell :: w -> IxStateT m i i () #

listen :: IxStateT m i i a -> IxStateT m i i (a, w) #

pass :: IxStateT m i i (a, w -> w) -> IxStateT m i i a #

MonadFix m => IxMonadFix (IxStateT m) Source # 

Methods

imfix :: (a -> IxStateT m i i a) -> IxStateT m i i a #

Monad m => IxMonad (IxStateT m) Source # 

Methods

ibind :: (a -> IxStateT m j k b) -> IxStateT m i j a -> IxStateT m i k b #

MonadPlus m => IxMonadZero (IxStateT m) Source # 

Methods

imzero :: IxStateT m i j a #

MonadPlus m => IxMonadPlus (IxStateT m) Source # 

Methods

implus :: IxStateT m i j a -> IxStateT m i j a -> IxStateT m i j a #

Monad m => IxFunctor (IxStateT m) Source # 

Methods

imap :: (a -> b) -> IxStateT m j k a -> IxStateT m j k b #

Monad m => IxApplicative (IxStateT m) Source # 

Methods

iap :: IxStateT m i j (a -> b) -> IxStateT m j k a -> IxStateT m i k b #

Monad m => IxPointed (IxStateT m) Source # 

Methods

ireturn :: a -> IxStateT m i i a #

Monad m => IxMonadState (IxStateT m) Source # 

Methods

iget :: IxStateT m i i i Source #

iput :: j -> IxStateT m i j () Source #

Monad m => Bifunctor (IxStateT m i) Source # 

Methods

bimap :: (a -> b) -> (c -> d) -> IxStateT m i a c -> IxStateT m i b d #

first :: (a -> b) -> IxStateT m i a c -> IxStateT m i b c #

second :: (b -> c) -> IxStateT m i a b -> IxStateT m i a c #

Monad m => Monad (IxStateT m i i) Source # 

Methods

(>>=) :: IxStateT m i i a -> (a -> IxStateT m i i b) -> IxStateT m i i b #

(>>) :: IxStateT m i i a -> IxStateT m i i b -> IxStateT m i i b #

return :: a -> IxStateT m i i a #

fail :: String -> IxStateT m i i a #

Monad m => Functor (IxStateT m i j) Source # 

Methods

fmap :: (a -> b) -> IxStateT m i j a -> IxStateT m i j b #

(<$) :: a -> IxStateT m i j b -> IxStateT m i j a #

MonadFix m => MonadFix (IxStateT m i i) Source # 

Methods

mfix :: (a -> IxStateT m i i a) -> IxStateT m i i a #

Monad m => Applicative (IxStateT m i i) Source # 

Methods

pure :: a -> IxStateT m i i a #

(<*>) :: IxStateT m i i (a -> b) -> IxStateT m i i a -> IxStateT m i i b #

(*>) :: IxStateT m i i a -> IxStateT m i i b -> IxStateT m i i b #

(<*) :: IxStateT m i i a -> IxStateT m i i b -> IxStateT m i i a #

MonadIO m => MonadIO (IxStateT m i i) Source # 

Methods

liftIO :: IO a -> IxStateT m i i a #

MonadCont m => MonadCont (IxStateT m i i) Source # 

Methods

callCC :: ((a -> IxStateT m i i b) -> IxStateT m i i a) -> IxStateT m i i a #

newtype IxState i j a Source #

Constructors

IxState 

Fields

Instances

IxMonadFix IxState Source # 

Methods

imfix :: (a -> IxState i i a) -> IxState i i a #

IxMonad IxState Source # 

Methods

ibind :: (a -> IxState j k b) -> IxState i j a -> IxState i k b #

IxFunctor IxState Source # 

Methods

imap :: (a -> b) -> IxState j k a -> IxState j k b #

IxApplicative IxState Source # 

Methods

iap :: IxState i j (a -> b) -> IxState j k a -> IxState i k b #

IxPointed IxState Source # 

Methods

ireturn :: a -> IxState i i a #

IxMonadState IxState Source # 

Methods

iget :: IxState i i i Source #

iput :: j -> IxState i j () Source #

MonadState i (IxState i i) Source # 

Methods

get :: IxState i i i #

put :: i -> IxState i i () #

state :: (i -> (a, i)) -> IxState i i a #

Bifunctor (IxState i) Source # 

Methods

bimap :: (a -> b) -> (c -> d) -> IxState i a c -> IxState i b d #

first :: (a -> b) -> IxState i a c -> IxState i b c #

second :: (b -> c) -> IxState i a b -> IxState i a c #

Monad (IxState i i) Source # 

Methods

(>>=) :: IxState i i a -> (a -> IxState i i b) -> IxState i i b #

(>>) :: IxState i i a -> IxState i i b -> IxState i i b #

return :: a -> IxState i i a #

fail :: String -> IxState i i a #

Functor (IxState i j) Source # 

Methods

fmap :: (a -> b) -> IxState i j a -> IxState i j b #

(<$) :: a -> IxState i j b -> IxState i j a #

MonadFix (IxState i i) Source # 

Methods

mfix :: (a -> IxState i i a) -> IxState i i a #

Applicative (IxState i i) Source # 

Methods

pure :: a -> IxState i i a #

(<*>) :: IxState i i (a -> b) -> IxState i i a -> IxState i i b #

(*>) :: IxState i i a -> IxState i i b -> IxState i i b #

(<*) :: IxState i i a -> IxState i i b -> IxState i i a #