-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Python-generators notation for creation of monadic lists -- -- Generator monad transformer to create monadic lists in a manner -- similar to Python generators. @package generator @version 0.5.4 -- | A monad transformer for the creation of Lists. Similar to Python's -- generators. -- --
--   import Control.Monad.Identity (Identity(..))
--   import Data.List.Class (toList)
--   
--   hanoi 0 _ _ _ = return ()
--   hanoi n from to other = do
--     hanoi (n-1) from other to
--     yield (from, to)
--     hanoi (n-1) other to from
--   
--   > runIdentity . toList . generate $ hanoi 3 'A' 'B' 'C' :: [(Char, Char)]
--   [('A','B'),('A','C'),('B','C'),('A','B'),('C','A'),('C','B'),('A','B')]
--   
module Control.Monad.Generator -- | A monad transformer to create Lists. generate -- transforms a GeneratorT v m a to a ListT m a. newtype GeneratorT v m a GeneratorT :: ContT v (ListT m) a -> GeneratorT v m a runGeneratorT :: GeneratorT v m a -> ContT v (ListT m) a generate :: Monad m => GeneratorT v m () -> ListT m v yield :: Monad m => v -> GeneratorT v m () breakGenerator :: Monad m => GeneratorT v m a instance MonadIO m => MonadIO (GeneratorT v m) instance MonadTrans (GeneratorT v) instance Monad m => Applicative (GeneratorT v m) instance Monad m => Monad (GeneratorT v m) instance Monad m => Functor (GeneratorT v m)