This is like a list except that you can interleave effects between each list element. For example:
stdin :: ListT IO String
stdin = ListT (do
eof <- System.IO.isEOF
if eof
then return Nil
else do
line <- getLine
return (Cons line stdin) )The mnemonic is "List Transformer" because this type takes a base Monad,
'm', and returns a new transformed Monad that adds support for
list comprehensions
Instances19MonadTrans, MFunctor, MonadError, MonadReader, MonadState, Monad, …
MonadTrans ListTDefined in list-transformer-1.1.1 · List.TransformerMFunctor ListTDefined in list-transformer-1.1.1 · List.TransformerMonadError e m => MonadError e (ListT m)Defined in list-transformer-1.1.1 · List.TransformerMonadReader i m => MonadReader i (ListT m)Defined in list-transformer-1.1.1 · List.TransformerMonadState s m => MonadState s (ListT m)Defined in list-transformer-1.1.1 · List.TransformerMonad m => Monad (ListT m)Defined in list-transformer-1.1.1 · List.TransformerMonad m => Functor (ListT m)Defined in list-transformer-1.1.1 · List.TransformerMonad m => MonadFail (ListT m)Defined in list-transformer-1.1.1 · List.TransformerMonad m => Applicative (ListT m)Defined in list-transformer-1.1.1 · List.TransformerFoldable m => Foldable (ListT m)Defined in list-transformer-1.1.1 · List.Transformer(Monad m, Traversable m) => Traversable (ListT m)Defined in list-transformer-1.1.1 · List.TransformerMonad m => Alternative (ListT m)Defined in list-transformer-1.1.1 · List.TransformerMonad m => MonadPlus (ListT m)Defined in list-transformer-1.1.1 · List.TransformerMonadIO m => MonadIO (ListT m)Defined in list-transformer-1.1.1 · List.Transformer(Monad m, Floating a) => Floating (ListT m a)Defined in list-transformer-1.1.1 · List.Transformer(Monad m, Fractional a) => Fractional (ListT m a)Defined in list-transformer-1.1.1 · List.Transformer(Monad m, Num a) => Num (ListT m a)Defined in list-transformer-1.1.1 · List.Transformer(Monad m, Semigroup a) => Semigroup (ListT m a)Defined in list-transformer-1.1.1 · List.Transformer(Monad m, Semigroup a, Monoid a) => Monoid (ListT m a)Defined in list-transformer-1.1.1 · List.Transformer