
On Sun, Nov 8, 2009 at 9:52 AM, Ketil Malde
Eugene Kirpichov
writes: In JavaScript there is a "null" value, that is the only value of the null type. Isn't () the same thing? The only value of the unary type?
No, () has two values: () and undefined (t.i., _|_).
How should I put it..? undefined is bottom, but bottom is not undefined? There are plenty of other constructions that are bottom. Infinite loops, throws, errors.. common for all of them, of course, is that you can't pattern-match on them or otherwise use them in pure code, and they generally don't act like values. So, can't we just say that () has a single value, namely ()? It'd make this much simpler, and we won't have to deal with the Nihil monoid. == data Nihil instance Monoid Nihil where mappend _ _ = undefined -- Svein Ove Aas