Control.Applicative.Trans.Free
data ApT f g a
data ApF f g a
liftApT
liftApO
runApT
runApF
runApT_
hoistApT
hoistApF
transApT
transApF
type Ap f
runAp
runAp_
retractAp
type Alt f
runAlt