monad-gen-0.3.0.1: A simple monad for generating fresh integers

Safe HaskellSafe
LanguageHaskell2010

Control.Monad.Gen

Synopsis

Documentation

data GenT e m a Source #

The monad transformer for generating fresh values.

Instances
MonadWriter w m => MonadWriter w (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

writer :: (a, w) -> GenT e m a #

tell :: w -> GenT e m () #

listen :: GenT e m a -> GenT e m (a, w) #

pass :: GenT e m (a, w -> w) -> GenT e m a #

MonadState s m => MonadState s (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

get :: GenT e m s #

put :: s -> GenT e m () #

state :: (s -> (a, s)) -> GenT e m a #

MonadReader r m => MonadReader r (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

ask :: GenT e m r #

local :: (r -> r) -> GenT e m a -> GenT e m a #

reader :: (r -> a) -> GenT e m a #

MonadError e m => MonadError e (GenT e' m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

throwError :: e -> GenT e' m a #

catchError :: GenT e' m a -> (e -> GenT e' m a) -> GenT e' m a #

Monad m => MonadGen e (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

gen :: GenT e m e Source #

MonadTrans (GenT e) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

lift :: Monad m => m a -> GenT e m a #

Monad m => Monad (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

(>>=) :: GenT e m a -> (a -> GenT e m b) -> GenT e m b #

(>>) :: GenT e m a -> GenT e m b -> GenT e m b #

return :: a -> GenT e m a #

fail :: String -> GenT e m a #

Functor m => Functor (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

fmap :: (a -> b) -> GenT e m a -> GenT e m b #

(<$) :: a -> GenT e m b -> GenT e m a #

MonadFix m => MonadFix (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

mfix :: (a -> GenT e m a) -> GenT e m a #

(Functor f, Monad f) => Applicative (GenT e f) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

pure :: a -> GenT e f a #

(<*>) :: GenT e f (a -> b) -> GenT e f a -> GenT e f b #

liftA2 :: (a -> b -> c) -> GenT e f a -> GenT e f b -> GenT e f c #

(*>) :: GenT e f a -> GenT e f b -> GenT e f b #

(<*) :: GenT e f a -> GenT e f b -> GenT e f a #

MonadIO m => MonadIO (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

liftIO :: IO a -> GenT e m a #

(Monad m, Functor m, MonadPlus m) => Alternative (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

empty :: GenT e m a #

(<|>) :: GenT e m a -> GenT e m a -> GenT e m a #

some :: GenT e m a -> GenT e m [a] #

many :: GenT e m a -> GenT e m [a] #

MonadPlus m => MonadPlus (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

mzero :: GenT e m a #

mplus :: GenT e m a -> GenT e m a -> GenT e m a #

MonadCont m => MonadCont (GenT e m) Source # 
Instance details

Defined in Control.Monad.Gen

Methods

callCC :: ((a -> GenT e m b) -> GenT e m a) -> GenT e m a #

type Gen e = GenT e Identity Source #

successor :: (e -> e) -> Successor e Source #

runGenT :: (Enum e, Monad m) => GenT e m a -> m a Source #

Run a GenT computation starting from the value toEnum 0

runGen :: Enum e => Gen e a -> a Source #

Run a Gen computation starting from the value toEnum 0

runGenTWith :: Monad m => Successor e -> e -> GenT e m a -> m a Source #

Run a GenT computation starting from a specific value e with a the next fresh value determined by Successor e.

runGenWith :: Successor e -> e -> Gen e a -> a Source #

Run a GenT computation starting from a specific value e with a the next fresh value determined by Successor e.

runGenTFrom :: (Monad m, Enum e) => e -> GenT e m a -> m a Source #

Run a GenT computation starting from a specific value e.

runGenFrom :: Enum e => e -> Gen e a -> a Source #

Run a Gen computation starting from a specific value e.