data A a = A a deriving (Generic) instance (Arg (A a) a, Arbitrary a) => Arbitrary (A a) where arbitrary = genericArbitrary shrink = genericShrink