{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE RecordWildCards #-} foo x y = Foo{x, y} bar x y z = Bar { x , y , z , .. } baz = Baz{..}