<span style="font-family: courier new,monospace;">Sorry, I didn&#39;t mean to answer you in particular. I meant to say that for tuples you could </span><span style="font-family: courier new,monospace;">(I think) </span><span style="font-family: courier new,monospace;">have an enumeration over them without requiring any component be bounded.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">An example of type (Integer, Integer) you would have:</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">[(0,0) ..] = [(0,0) (0,1) (1,0) (0,2) (1,1) (2,0) ... ]</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">where the order can be visualized by taking diagonals of a table starting from the upper left:</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    0      1      2     ..</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">0 (0,0)  </span><span style="font-family: courier new,monospace;">(0,1)  </span><span style="font-family: courier new,monospace;">(0,2)  </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">1 (1,0)  (1,1)  (1,2)</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">2 (2,0)  (2,1)  (2,2)</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">..<br><br>Would this also have an uncomputable order type? At least for comparing tuples you&#39;d just:<br><br>lt :: (Integer,Integer) -&gt; (Integer,Integer) -&gt; Bool<br>
(a,b) `lt` (c,d) = let<br>      sum1 = (a + b)<br>      sum2 = (c + d)<br>   in if sum1 == sum2<br>         then a &lt; c<br>         else sum1 &lt; sum2</span><span style="font-family: courier new,monospace;"><br><br><br>
Implementing fromEnum looks like a bit harder problem..<br><br><br>--<br>Markus Läll<br></span><br><br><br><br>On Fri, Mar 4, 2011 at 5:12 AM, Daniel Fischer &lt;<a href="mailto:daniel.is.fischer@googlemail.com">daniel.is.fischer@googlemail.com</a>&gt; wrote:<br>
&gt;<br>&gt; On Friday 04 March 2011 03:24:34, Markus wrote:<br>&gt; &gt; What about having the order by diagonals, like:<br>&gt; &gt;<br>&gt; &gt; 0 1 3<br>&gt; &gt; 2 4<br>&gt; &gt; 5<br>&gt; &gt;<br>&gt; &gt; and have none of the pair be bounded?<br>
&gt; &gt;<br>&gt;<br>&gt; I tacitly assumed product order (lexicographic order).<br><br>