[Haskell-cafe] Re: Laws and partial values
Jonathan Cast
jonathanccast at fastmail.fm
Sun Jan 25 12:56:47 EST 2009
On Sun, 2009-01-25 at 10:46 -0700, Luke Palmer wrote:
> 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.
Have fun. I'll just ignore you and go work on actually *doing* FP,
instead.
jcc
More information about the Haskell-Cafe
mailing list