<br><br><div class="gmail_quote">On Mon, Nov 3, 2008 at 3:53 PM, Daniel Fischer <span dir="ltr">&lt;<a href="mailto:daniel.is.fischer@web.de">daniel.is.fischer@web.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Am Dienstag, 4. November 2008 00:26 schrieb Michael Snoyman:<br>
<div class="Ih2E3d"><br>
</div>Beware! Multiplication is usually not commutative, think about matrices. If<br>
(a `mult` b) and (b `mult` a) are both defined (need not be if they have<br>
different types), the products may have different types, so in general it is<br>
not desirable to have both defined automatically in a way that doesn&#39;t force<br>
you to supply the arguments in the correct order.<br>
<br>
In your case, you could provide<br>
instance Multiplicable MilesPerGallon Gallon Mile where<br>
 &nbsp; &nbsp; &nbsp; &nbsp;mult = flip mult<br>
-- or write the implementation out<br>
and it should work whichever order the arguments are passed.</blockquote><div><br>Good point. Thanks for all the help!</div></div>