(>^>) ∷ (MFunctor b, MonadTrans a, MonadTrans b, Monad i, Monad (b i), Monad (a i), Monad (b (a i))) ⇒
    Producer x (a i) r → Consumer x (b i) r → Effect (b (a i)) r
(>^>) a b = hoist lift a >-> hoist (hoist lift) b

fromSo
(>^>) ∷ (MFunctor b, MonadTrans a, MonadTrans b, Monad i, Monad (b i), Monad (a i), Monad (b (a i))) ⇒
    Producer x (a i) r → Consumer x (b i) r → Effect (b (a i)) r
(>^>) a b = hoist lift a >-> hoist (hoist lift) b
(>^>) a b = hoist lift a >-> hoist (hoist lift) b