<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">I've been playing around with "The Little MLer" (pg. 95, 96) to try to improve my understanding of types.<br><br>I can ask ML:<br>&nbsp;<br>- ints(0);<br>val it = Link (1,fn) : chain<br>-<br><br>and Haskell:<br><br>*Main&gt; :t ints 0<br>ints 0 :: Chain<br>*Main&gt; ints 0<br><br>&lt;interactive&gt;:1:0:<br>&nbsp;&nbsp;&nbsp; No instance for (Show Chain)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arising from a use of `print' at &lt;interactive&gt;:1:0-5<br>&nbsp;&nbsp;&nbsp; Possible fix: add an instance declaration for (Show Chain)<br>&nbsp;&nbsp;&nbsp; In a stmt of a 'do' expression: print it<br>*Main&gt; <br><br>I think I need to write a show function for type Chain but not<br>sure how to proceed.<br><br>Michael<br><br>===============<br><br>;;ML<br><br>datatype chain =<br>&nbsp; Link of (int * (int -&gt; chain))<br><br>fun ints(n)<br>&nbsp; = Link(n + 1,
 ints)<br><br>;;Haskell<br><br>data Chain = Link Int (Int -&gt; Chain)<br><br>ints :: Int -&gt; Chain<br>ints n = Link (n+1) ints<br><br></td></tr></table><br>