Wow, I had no idea there were so many record packages! This indicates a couple things to me: a) Haskell is very flexible. b) I'm not the only one who things the built-in record system isn't perfect. 

Digging a bit deeper, it looks like some of the record-related ghc extensions might also be useful, such as record punning and field disambiguation. 
Since these are already extensions, they're more likely to make it into Haskell 20XX. Are these considered to be the solution to current record syntax problems? 

With these extensions, couldn't I write the following?

>someUpdate :: MyRecord -> MyRecord
>someUpdate myRecord@(MyRecord{..}) = let 
>     { field1 = f field1
>     , field2 = g field2
>     , field3 = h filed3
>     } in myRecord{..}