[Haskell-cafe] Re: Laws and partial values

Lennart Augustsson lennart at augustsson.net
Sun Jan 25 12:45:21 EST 2009


If all tuples in Haskell were unlifted then () would not be such a special case.
But I would argue against unlifted tuples, because that would make
tuples (or single constructor data types) different from other data
types; adding a constructor to a type could totally wreck laziness of
a program with unlifted tuples.

Also, unlifted tuples forces parallel evaluation for seq.

On Sun, Jan 25, 2009 at 5:17 PM, 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
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


More information about the Haskell-Cafe mailing list