Well, you would use records, but records are a weak point of the Haskell language. I've discussed "why not Haskell" with some Nix people and they specifically mentioned the lack of row polymorphism.
(aside from Haskell and Scheme themselves, of course)
Those PureScript records tho...