
20 Aug
2009
20 Aug
'09
8:45 a.m.
On 08/08/2009 10:24, Ross Paterson wrote:
On Sat, Aug 08, 2009 at 10:09:38AM +0100, Iavor Diatchki wrote:
I thought that the intended semantics was supposed to be that the only element is bottom (hence the proposal to add a related empty case construct)?
If that were the case, a compiler could legitimately discard any value of such a type, because it could be easily reconstructed. I don't think that is what is intended.
Just in case this question is still open: an empty data declaration declares a type that has exactly zero constructors, not an abstract type. What would it mean to define an abstract types? Haskell only allows one definition of any given type. Cheers, Simon