I occasionally run into cases where I want to use Down in a data type, use some generic derivation for Arbitrary, and end up needing to write the orphan instances (or make my own type for it):
deriving instance Arbitrary a => Arbitrary (Down a)
instance Arbitrary1 Down where
liftArbitrary = fmap Down
liftShrink shr = fmap Down . shr . getDown
It's not that big of a deal (and I admittedly rarely use the Arbitrary1 instance) but it would be nice if these were included, as they are for most other types in base.
I occasionally run into cases where I want to use
Down
in a data type, use some generic derivation forArbitrary
, and end up needing to write the orphan instances (or make my own type for it):It's not that big of a deal (and I admittedly rarely use the
Arbitrary1
instance) but it would be nice if these were included, as they are for most other types inbase
.