Oh -- partial &amp; partial.&nbsp; Thanks.&nbsp; I was pretty puzzled there.<br><br>The type argument I ran into trouble with represents a value as a list of increasing lower bounds, ending in the exact value.&nbsp; min produces lower bounds from lower bounds and so is immediately productive before even knowing which argument is the lesser one.&nbsp; (&lt;=) returns Bool, and so cannot produce any partial information.&nbsp; Unfortunately, the derived Ord instance omits min which therefore defaults to a definition in terms of (&lt;=), which therefore cannot produce partial &#39;a&#39; info.<br>
<br>&nbsp; - Conal<br><br>Some references on &quot;improving values&quot;:<br><span style="font-family: courier new,monospace;"><br>@Article{Burton91:Encapsulating,<br>&nbsp;&nbsp;&nbsp; author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {F. Warren Burton},<br>&nbsp;&nbsp;&nbsp; title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {Encapsulating nondeterminacy in an abstract data type with deterministic semantics},<br>
&nbsp;&nbsp;&nbsp; journal&nbsp;&nbsp;&nbsp;&nbsp; = {Journal of Functional Programming},<br>&nbsp;&nbsp;&nbsp; year&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1991,<br>&nbsp;&nbsp;&nbsp; volume&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1,<br>&nbsp;&nbsp;&nbsp; number&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1,<br>&nbsp;&nbsp;&nbsp; pages&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {3--20},<br>&nbsp;&nbsp;&nbsp; month&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {January}<br>}<br><br>@inproceedings{Burton89:Indeterminate,<br>
&nbsp;&nbsp;&nbsp; author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {F. Warren Burton},<br>&nbsp;&nbsp;&nbsp; title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {Indeterminate behavior with determinate semantics in parallel programs},<br>&nbsp;&nbsp;&nbsp; booktitle&nbsp;&nbsp; = {FPCA &#39;89: Proceedings of the fourth international conference on Functional programming languages and computer architecture},<br>
&nbsp;&nbsp;&nbsp; year&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {1989},<br>&nbsp;&nbsp;&nbsp; isbn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {0-89791-328-0},<br>&nbsp;&nbsp;&nbsp; pages&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {340--346},<br>&nbsp;&nbsp;&nbsp; location&nbsp;&nbsp;&nbsp; = {Imperial College, London, United Kingdom},<br>&nbsp;&nbsp;&nbsp; doi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = {<a href="http://doi.acm.org/10.1145/99370.99402">http://doi.acm.org/10.1145/99370.99402</a>},<br>
&nbsp;&nbsp;&nbsp; publisher&nbsp;&nbsp; = {ACM},<br>&nbsp;&nbsp;&nbsp; address&nbsp;&nbsp;&nbsp;&nbsp; = {New York, NY, USA},<br>&nbsp;}<br></span><br><br><div class="gmail_quote">On Thu, Mar 20, 2008 at 11:00 AM, Christian Maeder &lt;<a href="mailto:Christian.Maeder@dfki.de">Christian.Maeder@dfki.de</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d">Conal Elliott wrote:<br>
&gt; AddBounds makes total orders from total orders. &nbsp;It just adds new least<br>
&gt; and greatest elements.<br>
&gt;<br>
&gt; The problem with the derived instance is that it doesn&#39;t exploit the<br>
&gt; potential laziness of min on &#39;a&#39;. &nbsp;Because of their types, min it can<br>
&gt; produce partial info from partial info and (&lt;=) and compares cannot.<br>
<br>
</div>Right, I&#39;ve mixed up partial orders, partial (infinite?) values as input<br>
to total order functions. I could not construct an example, though.<br>
<br>
&nbsp;min (NoBound MinBound) (NoBound (NoBound undefined))<br>
<br>
worked using ghci.<br>
<br>
Cheers Christian<br>
</blockquote></div><br>