genericArbitrary package:generic-arbitrary

Newtype for DerivingVia Usage:
data Foo = Foo
{ _fooX :: X
, _fooY :: Y
} deriving (Generic)
deriving (Arbitrary) via GenericArbitrary Foo