Hi Oleg,<br><br><div class="gmail_quote">On Wed, Jun 22, 2011 at 09:36,  <span dir="ltr">&lt;<a href="mailto:oleg@okmij.org">oleg@okmij.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im"><br>
<br>
&gt; the need to define a duplicate of the class (MonadState&#39; in your<br>
&gt; example) bloats the code significantly.<br>
<br>
</div>I&#39;m quite puzzled at the statement. Is there really significant<br>
bloat? Let us count.<br>
<br>
As the first example, let&#39;s take<br>
        class C a<br>
with N special instances, mutually non-overlapping instances, and one<br>
catch-all instance &quot;instance C a&quot;. We have N+1 instances total.<br>
<br>
With the technique in the earlier message, we define an auxiliary<br>
        class C&#39; a flag<br>
with N special and one catch-all instance, all non-overlapping. We<br>
then define one instance of the original class C, performing the<br>
dispatch. The additional cost: one class declaration and one<br>
instance. Is one extra class and one instance considered a bloat?<br>
The extra class is systematically derived from the original one<br>
(so, one could get TH to do the deriving).<br></blockquote><div><br>My problem is exactly with this unnecessary repetition. If the extra class can be systematically derived from the original code, then it shouldn&#39;t have to be specified. All I&#39;m saying is that if we would want to have such a mechanism for replacing OverlappingInstances, then we should also come up with a way (possibly even involving new syntax) to make it intuitive to use.<br>

<br>(We&#39;ve done something similar for the new generics stuff, by introducing DefaultSignatures.)<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


<br><div class="im">&gt; But I am still doubtful of the runtime performance of your code<br>
<br>
</div>I believe discussing performance may be a bit premature;</blockquote><div><br>Perhaps, but this was prompted by your suggestion of considering deprecating OverlappingInstances. I have lots of code that relies on it, and I wouldn&#39;t want it to start triggering warnings just yet :-)<br>

<br><br>Cheers,<br>Pedro<br><br></div></div>