<div dir="ltr"><div class="gmail_extra">On Mon, Mar 4, 2013 at 12:07 AM, Ertugrul Söylemez <span dir="ltr">&lt;<a href="mailto:es@ertes.de" target="_blank">es@ertes.de</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">Arie Peterson &lt;<a href="mailto:ariep@xs4all.nl">ariep@xs4all.nl</a>&gt; wrote:<br>
<br>
&gt; Would anyone have a problem with a deprecation of<br>
&gt; MonadCatchIO-transformers, and a failure to update it to work with a<br>
&gt; base without &#39;block&#39; and &#39;unblock&#39;?<br>
<br>
</div>Yes.  This is a simplified variant of a monad I use:<br>
<br>
    newtype Continue f m a = Continue (m (Maybe a, f (Continue f a)))<br>
<br>
It&#39;s related to Cofree and has a valid and very straightforward<br>
MonadCatchIO instance.  However, it&#39;s probably impossible to write a<br>
valid MonadTransControl/MonadBaseControl instance for it.<br>
<br>
So I kindly ask you not to deprecate MonadCatchIO.  The reason I&#39;m<br>
hesitant about moving to monad-control is that it&#39;s hard to understand<br>
and also very difficult to define for CPS monads.  It is commonly<br>
believed to be impossible.<br></blockquote><div><br></div><div style>You can always cast the continuation to a dynamic type and cast it back later.</div><div style>Doing so would typically require additional constraints, however if you&#39;re trying to make an instance for MonadTransControl that&#39;s unfortunately not possible (you&#39;d need a Typeable constraint on the monad parameter, but it&#39;s not in scope).  Lacking an appropriate MonadTransControlWithTypeable class, it&#39;s certainly possible to fall back to various low-level, highly-dubious constructs.  Which I of course implemented without hesitation :grin</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Also I&#39;ve seen at least one article about the incorrectness of<br>
monad-control.  That&#39;s one further reason I like to avoid it.<br></blockquote><div><br></div><div style>I&#39;d appreciate a link if anyone could manage to find it.  I haven&#39;t seen any criticisms of monad-control.</div>
<div style><br></div><div style>John L. </div></div></div></div>