Arie Peterson <ariep@xs4all.nl> wrote:Yes. This is a simplified variant of a monad I use:
> Would anyone have a problem with a deprecation of
> MonadCatchIO-transformers, and a failure to update it to work with a
> base without 'block' and 'unblock'?
newtype Continue f m a = Continue (m (Maybe a, f (Continue f a)))
It's related to Cofree and has a valid and very straightforward
MonadCatchIO instance. However, it's probably impossible to write a
valid MonadTransControl/MonadBaseControl instance for it.
So I kindly ask you not to deprecate MonadCatchIO. The reason I'm
hesitant about moving to monad-control is that it's hard to understand
and also very difficult to define for CPS monads. It is commonly
believed to be impossible.
Also I've seen at least one article about the incorrectness of
monad-control. That's one further reason I like to avoid it.