
I think it is time to close down the records discussion on the mail list and ask for an implementation The implementer should use any means at their disposal, probably by adding a new construct to the language. However, for now any new constructs or other implementation details should be kept internal so that we can maintain flexibility going forward. A lot of smart people are expending a huge amount of mental effort discussing how to shoehorn this problem into the existing Haskell machinery and the fine details of the best way to do it even though there is still no truly satisfactory solution. I would really like to see this effort instead go into an implementation.
This attitude is one I can't even begin to understand. How can you implement something before understanding it? What are you going to implement? Trying to "close down discussion" when no conclusion has been reached is not the action of a healthy community!
Barney.
This discussion has largely centered around trying to come up with a hack that desugars to Haskell's existing language constructs. What you are proposing right now may be the most workable solution of that category, but Java programmers still have it far better. The main fruit of this discussion is this realization. There is an alternative to a desugaring hack: add a real record construct to the language. I don't see how any more discussion on this mail list is going to make this happen. And there is nothing to discuss if we hide the implementation details (besides some details of the exposed interface). What we need now are implementers to do actual work on this. Let them choose the path they want rather than be handicapped by us and they can decide if further discussion is needed.