<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"><div class="Section1"><p class="MsoNormal" style="text-autospace:none"><b><font size="2" color="#0000c4" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:#0000C4;font-weight:bold">module</span></font></b><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:black"> <st1:place w:st="on">Main</st1:place> </span></font><b><font size="2" color="#0000c4" face="Courier New"><span style="font-size:10.0pt; font-family:"Courier New";color:#0000C4;font-weight:bold">where</span></font></b><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""><o:p></o:p></span></font></p><p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""><o:p> </o:p></span></font></p><p class="MsoNormal" style="text-autospace:none"><b><font size="2" color="#0000c4" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:#0000C4;font-weight:bold">data</span></font></b><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:black"> SquareType numberType = Num numberType => SquareConstructor numberType</span></font><font size="2" face="Courier New"><span style="font-size: 10.0pt;font-family:"Courier New""><o:p></o:p></span></font></p><p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""><o:p> </o:p></span></font></p><p class="MsoNormal" style="text-autospace:none"><b><font size="2" color="#0000c4" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:#0000C4;font-weight:bold">class</span></font></b><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:black"> ShapeInterface shape </span></font><b><font size="2" color="#0000c4" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:#0000C4;font-weight:bold">where</span></font></b><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""><o:p></o:p></span></font></p><p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:black"> area :: Num numberType => shape</span></font><b><font size="2" color="#0000c4" face="Courier New"><span style="font-size:10.0pt; font-family:"Courier New";color:#0000C4;font-weight:bold">-></span></font></b><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family: "Courier New";color:black">numberType</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""><o:p></o:p></span></font></p><p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""><o:p> </o:p></span></font></p><p class="MsoNormal" style="text-autospace:none"><b><font size="2" color="#0000c4" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:#0000C4;font-weight:bold">data</span></font></b><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:black"> ShapeType = forall a. ShapeInterface a => ShapeType a</span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""><o:p></o:p></span></font></p><p class="MsoNormal" style="text-autospace:none"><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""><o:p> </o:p></span></font></p><p class="MsoNormal" style="text-autospace:none"><b><font size="2" color="#0000c4" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:#0000C4;font-weight:bold">instance</span></font></b><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:black"> (Num a) => ShapeInterface (SquareType a) </span></font><b><font size="2" color="#0000c4" face="Courier New"><span style="font-size:10.0pt; font-family:"Courier New";color:#0000C4;font-weight:bold">where</span></font></b><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family: "Courier New";color:black"> </span></font><font size="2" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New""><o:p></o:p></span></font></p><p class="MsoNormal" style="text-autospace:none"><font size="2" color="black" face="Courier New"><span style="font-size:10.0pt;font-family:"Courier New"; color:black"> area (SquareConstructor side) = side * side</span></font></p></div></o:smarttagtype></blockquote></div><div>Awesome! That's the first e-mail I see that looks good in HTML!</div></body></html>