On Sun, Jan 25, 2009 at 10:17 AM, Jonathan Cast <[email protected]>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
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
