record FT : (Type -> Type) -> (Type -> Type) -> Type -> TypeChurch-encoded free monad transformer. Translated from:
https://hackage.haskell.org/package/free-5.1.8/docs/src/Control.Monad.Trans.Free.Church.html
.runFT : FT f m a -> (a -> m r) -> ((x -> m r) -> f x -> m r) -> m r.runFT : FT f m a -> (a -> m r) -> ((x -> m r) -> f x -> m r) -> m rrunFT : FT f m a -> (a -> m r) -> ((x -> m r) -> f x -> m r) -> m rhoistFT : (Monad m, Monad n) => (m x -> n x) -> FT f m a -> FT f n aiterT : (Functor f, Monad m) => (f (m a) -> m a) -> FT f m a -> m aiterTM : (Functor f, (Monad m, (MonadTrans t, Monad (t m)))) => (f (t m a) -> t m a) -> FT f m a -> t m a