Thanks.&nbsp; That&#39;s exactly what I&#39;ve done:<br><br>-- | Wrap a type into one having new least and greatest elements,<br>-- preserving the existing ordering.<br>data AddBounds a = MinBound | NoBound a | MaxBound<br>&nbsp; deriving (Eq, Ord, Read, Show)
<br><br>instance Bounded (AddBounds a) where<br>&nbsp; minBound = MinBound<br>&nbsp; maxBound = MaxBound<br><br>Looks like a generally useful tool.&nbsp;&nbsp; Is there any interest in seeing it added to a standard lib?<br><br>- Conal<br><br>
<br><div class="gmail_quote">On Dec 4, 2007 4:46 AM, Henning Thielemann &lt;<a href="mailto:lemming@henning-thielemann.de">lemming@henning-thielemann.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"><br>On Mon, 3 Dec 2007, Conal Elliott wrote:<br><br>&gt; I&#39;m using the bounds for event occurrence times. &nbsp;Or, from another angle,<br>&gt; for times associated with when values can become known. &nbsp;Pure values have
<br>&gt; time minBound, while eternally unknowable values (non-occurring events) have<br>&gt; time maxBound. &nbsp;Hm. &nbsp;Now that I put it that way, I realize that I don&#39;t want<br>&gt; to use existing minBound and maxBound if they&#39;re finite. &nbsp;(My event types
<br>&gt; are temporally polymorphic.) &nbsp;I&#39;m mainly interested in Float/Double times,<br>&gt; which have infinities in practice but apparently not guaranteed by the<br>&gt; language standard. &nbsp;I guess I&#39;ll either (a) bake in Double (temporally
<br>&gt; monomorphic) and rely on infinities not guaranteed by the standard, or (b)<br>&gt; keep temporal polymorphism and add infinities to time parameter. &nbsp;For now,<br>&gt; (b).<br><br></div>Since you cannot rely on the existence of an infinity value for a floating
<br>point type with a particular behaviour - you can simply define you own type:<br><br>data InfinityClosure a &nbsp;= &nbsp;NegativeInfinity | Finite a | PositiveInfinity<br></blockquote></div><br>