To the Haskell 1.3 committee, Two choices in the design of Haskell are: Should products be lifted? Should functions be lifted? Currently, the answer to the first is yes, and to the second is no. This is ad hoc in the extreme, and I am severely embarrassed that I did not recognise this more clearly at the time we first designed Haskell. Dear committee, I urge you, don't repeat our earlier mistakes! John Hughes makes a compelling case for yes; and mathematical cleanliness makes a compelling case for no. I slightly lean toward yes. (John is a persuasive individual!) But unless someone presents a clear and clean argument for answering the two questions differently, please answer them consistently. If both questions are answered yes, then there is a choice as to whether or not to have a Data class. Indeed, there are two choices: Should polymorphic uses of seq be marked by class Data? Should polymorphic uses of recursion be marked by class Rec? John Launchbury and Ross Paterson have written a beautiful paper urging yes on the latter point; ask them for a copy. Here, I have a mild preference to answer both questions no, as I think the extra complication is not worthwhile. But again, please answer them consistently. Cheers, -- P