Control.Monad.Trans.Free

The Free monad

data FreeF f r x

type Free f

wrap

runFree

The FreeT monad transformer

data FreeT f m r