I also like the approach of generalizing the record system, although I have not evaluated your particular proposal. Speaking of record improvements why is http://www.cse.ogi.edu/~mpj/pubs/lightrec.html not listed on the future of haskell page? has it already been determined to not be in the future of haskell or has no one gotten around to it? Does anyone else read this proposal and drool? Speaking of this proposal does anyone else see parallels between the lightweight modules proposal and the implicit parameters proposal http://www.cse.ogi.edu/~jlewis/implicit.ps.gz as implemented in ghc. in particular implicit parameters seem like they would be able to be implemented as syntatic sugar on the lightweight module system, one could rewrite implicit parameters as every function taking a record which we can call 'imp' now '?foo' can be rewritten as 'imp.foo' and the 'with ?foo = 1' construct can be rewritten as nimp = {imp | foo := 1} and then passing nimp to all called functions. I have not thought this too far thorough so I could be missing something obvious but I think it shows potential at least for the unification of two popular extensions. and I am pretty sure this was too obvious to mention in the lightweight records paper but the section of (.foo) being equivalent to (\{_|foo=v} -> v) seems appropriate. John -- -------------------------------------------------------------- John Meacham http://www.ugcs.caltech.edu/~john/ California Institute of Technology, Alum. john@foo.net --------------------------------------------------------------