As I was writing up an answer just now, I ran across an interesting problem:
data Gender = Male | Female deriving (Eq, Show) data Age = Baby | C
Is there a way to both take advantage of record syntax, and also provide a "default", unchangeable value for one of my constructors?
In the absence of a convincing counterexample, the answer seems to be "no".