[Haskell-cafe] Re: Laws and partial values
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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe