Coarbitrary
The Dual or Arbitrary
is Coarbitrary
. To understand how this works, see CoArbitrary in Haskell (SO Answer).
In case one wants to randomly generate functions, one will need to use a Coarbitrary
constraint to implement that function's Arbitrary
instance.
Implementing Coarbitrary
isn't hard. Looking at Number
's instance, Boolean
's instance, and Char
's instance, you can start to see a pattern.