, , Toxaris foo :: Either e a -> Either e' a, .
foo - , monad morphism: . , ( ) "" . ( "" - , , ...)
, >>*= Haskell. >>*= , :
(>>*=) :: Monad m => n a -> (a -> m b) -> m b
na >>*= k = morph na >>= k
where
-- Must be a monad morphism:
morph :: n a -> m a
morph = ...
>>*= >>= . mmorph, , "" - , morph :: Error e a -> Error e' a StateT s (ErrorT e IO) a StateT s (ErrorT e' IO) a.