[Haskell] extensible records using associated types