Isn't this solved (or addressed) by OverloadedRecordFields in GHC 7.10?
https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedReco...
https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedReco...
https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedReco...
https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedReco...
[0] https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedReco...
tl;dr: The patch worked but was messy/overly complex, so it needs refactoring before it's merged.