<p><br>
On Aug 3, 2011 1:33 PM, &quot;Patrick Browne&quot; &lt;<a href="mailto:patrick.browne@dit.ie">patrick.browne@dit.ie</a>&gt; wrote:<br>
&gt; instance Class Integer =&gt; SubClass Integer where <br>
&gt;    moo a = foo a</p>
<p>Since you&#39;ve just written the Class instance for Integer, the superclass context is actually irrelevant there.  You may as well just write</p>
<p>instance SubClass Integer where<br>
    moo a = foo a</p>
<p>And that goes to the point of what the difference is.  In the first case, you were declaring that all SubClass instances are Class instances,<br>
 and that mo defaults to foo for ALL types.  In the latter case, you&#39;re defining this just for Integer.  The difference is whether that default exists for other tyoes, or if its specific to Integer.</p>
<p>-- <br>
Chris Smith</p>