[Haskell-cafe] Re: Laws and partial values

Conal Elliott conal at conal.net
Sun Jan 25 13:09:24 EST 2009


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

> On Sun, 2009-01-25 at 09:04 -0800, Conal Elliott wrote:
> >
> > On Sun, Jan 25, 2009 at 7:11 AM, Jonathan Cast
> > <jonathanccast at fastmail.fm> 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.
> >
> >         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?
>
> jcc


Hi Jonathan,

The discussion so far had mostly been about whether *necessarily* () /= _|_,
i.e., whether a choice of () == _|_ contradicts domain theory.

I think you're now switching to a different question (contributing to the
"not entirely coherent" aspect of the discussion): which semantics is
*preferable* for what reasons (merits).  On that question, I'm inclined to
agree with you, because I like consistency.

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


More information about the Haskell-Cafe mailing list