[Haskell-cafe] Re: Laws and partial values

Derek Elkins derek.a.elkins at gmail.com
Sun Jan 25 17:06:20 EST 2009


On Sun, 2009-01-25 at 07:11 -0800, Jonathan Cast wrote:
> On Sun, 2009-01-25 at 10:46 +0100, Thomas Davie wrote:
> > On 25 Jan 2009, at 10:08, Daniel Fischer wrote:
> > 
> > > Am Sonntag, 25. Januar 2009 00:55 schrieb Conal Elliott:
> > >>> It's obvious because () is a defined value, while bottom is not -  
> > >>> per
> > >>> definitionem.
> > >>
> > >> I wonder if this argument is circular.
> > >>
> > >> I'm not aware of "defined" and "not defined" as more than informal  
> > >> terms.
> > >
> > > They are informal. I could've written one is a terminating  
> > > computation while
> > > the other is not.
> > 
> > Is that a problem when trying to find the least defined element of a  
> > set of terminating computations?
> 
> Yes.  If you've got a set of terminating computations, and it has
> multiple distinct elements, it generally doesn't *have* a least element.
> The P in CPO stands for Partial.

Yes, "partial" as in "partial order" (v. total order or preorder) not as
in partiality.  It's actually the "complete" part that indicates the
existence of a least element, pretty much by definition.  A cpo is a
dcpo (directed complete partial order) with a least element, though
sometimes "cpo" is used for "dcpo" in which case a least element is not
guaranteed.



More information about the Haskell-Cafe mailing list