[Haskell-cafe] Re: Laws and partial values

Luke Palmer lrpalmer at gmail.com
Sun Jan 25 12:46:24 EST 2009


On Sun, Jan 25, 2009 at 10:17 AM, Jonathan Cast
<jonathanccast at fastmail.fm>wrote:

> >         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.
> >
> >         jcc
> >
> > and this concern does not apply to ()  .
>
> And?  () behaves in exactly the same fashion as every other Haskell data
> type in existence, and in consequence we're having an extended, not
> entirely coherent, discussion of how wonderful it would be if it was a
> quite inconsistent special case instead?  Why?


I think the discussion is not about adding an inconsistent special case, but
about theories in which a bottomless () *is* consistent.

The denotational meaning of a program is nothing more than a meaning
function applied to its syntax.  In this discussion, we are simply toying
with the meaning functions which remain faithful to our intuition about what
a program "should" do, while giving slightly different answers on the edge
cases, to see if it is more or less beautiful/consistent/useful.

This discussion is in the same vein as discussions about what Haskell looks
like if you remove seq, or if all one-constructor data types are unlifted --
both of those clean up the semantics considerably.  What if this does too,
and we just don't see how?  We're trying to see.

Luke
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090125/c3867662/attachment.htm


More information about the Haskell-Cafe mailing list