free-0.2.1: Haskell 98 monads for free

Portabilityportable
Stabilityprovisional
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Monad.Free

Description

Haskell 98 free monads

Documentation

data Free f a Source

Constructors

Pure a 
Free (f (Free f a)) 

Instances

Functor f => Monad (Free f) 
Functor f => Functor (Free f) 
Functor f => Applicative (Free f) 
Foldable f => Foldable (Free f) 
Traversable f => Traversable (Free f) 
Traversable1 f => Traversable1 (Free f) 
Foldable1 f => Foldable1 (Free f) 
Functor f => Apply (Free f) 
Functor f => Bind (Free f) 
(Eq (f (Free f a)), Eq a) => Eq (Free f a) 
(Ord (f (Free f a)), Ord a) => Ord (Free f a) 
(Read (f (Free f a)), Read a) => Read (Free f a) 
(Show (f (Free f a)), Show a) => Show (Free f a) 

iter :: Functor f => (f a -> a) -> Free f a -> aSource