category-extras-0.44.1: Various modules and constructs inspired by category theory.

Control.Monad.Free

Description

type FreeB f a b = BiffB Either Identity f a bSource

type Free f a = FixB (BiffB Either Identity f) aSource

inFree :: f (Free f a) -> Free f aSource

runFree :: Free f a -> Either a (f (Free f a))Source

cataFree :: Functor f => (c -> a) -> (f a -> a) -> Free f c -> aSource

free :: Either a (f (Free f a)) -> Free f aSource