Documentation
data List m a Source
Data type for lists where both the head and tail are monadic.
Instances
(Monad m, Trans m a b) => Trans m [a] (List m b)  This instance enables the function Control.Monad.Sharing.eval
 to transform ordinary Haskell lists into nested monadic lists.

(Monad m, Trans m a b) => Trans m (List m a) [b]  This instance enables the function Control.Monad.Sharing.eval
 to transform nested monadic lists into ordinary Haskell lists.

(Monad m, Trans m a b) => Trans m (List m a) (List m b)  This instance allows to use nested monadic lists as argument to
 the Control.Monad.Sharing.share combinator.

first :: MonadPlus m => m (List m a) > m aSource
Yields the head of a monadic list. Relies on MonadPlus
instance
 to provide a failing implementation of fail
.
rest :: MonadPlus m => m (List m a) > m (List m a)Source
Yields the tail of a monadic list. Relies on MonadPlus
instance
 to provide a failing implementation of fail
.