. , LogicT ContT FreeT .
, : . , , , . , lift MonadTrans :
lift (return x) = return x
lift (m >>= f) = lift m >>= \x -> lift (f x)
, lift , , :
(lift .) return = return -- fmap id = id
(lift .) (f >=> g) = (lift .) f >=> (lift .) g -- fmap (f . g) = fmap f . fmap g
, (lift .) kleisli, lift , , .
, Functor, Monad MonadTrans, Typeclassopedia , .