Record update for Higher-ranked or changing type via Has/get/set [was: Records in Haskell]