
The proposal that I like the most is this one: "Open Data Types and Open Functions" http://lambda-the-ultimate.org/node/1453 However, it doesn't readily admit using the variants as overlapping enumerations like John suggested in a previous thread: http://article.gmane.org/gmane.comp.lang.haskell.cafe/23362 In fact it doesn't really support structural sub-typing at all (the way that polymorphic variants in Ocaml do), but it does support independent extension (which PV's don't do). Dan Doel wrote:
P.S.: Some papers:
http://www.cse.ogi.edu/PacSoft/publications/2000/extensiblerecords.pdf
http://research.microsoft.com/users/daan/download/papers/scopedlabels.pdf
The second actually discusses all the operations on variants and whatnot. The first just mentions that it's a related topic.