{-# LANGUAGE NamedFieldPuns #-} module IndirectPuns () where newtype Foo = Foo { field :: Int } unFoo :: Foo -> Int unFoo Foo{field} = field