
On Sat, 2009-01-24 at 03:08 -0700, Luke Palmer wrote:
On Sat, Jan 24, 2009 at 2:40 AM, Ryan Ingram
wrote: On Fri, Jan 23, 2009 at 10:49 PM, Thomas Davie wrote: > Isn't the point of bottom that it's the least defined value. Someone above > made the assertion that for left identity to hold, _|_ `mappend` () must be > _|_. But, as there is only one value in the Unit type, all values we have > no information about must surely be that value, so this is akin to saying () > `mappend` () must be (), which our definition gives us. But _|_ is not ().
Correction: _|_ is not always ().
For example: in Haskell. Prelude> () `seq` True True Prelude> (undefined `asTypeOf` ()) `seq` True *** Exception: Prelude.undefined jcc