A roundtrip test to check whether values of all of constructors of the given type can be successfully converted to JSON and back to a Haskell value.
roundtripADTSpecs will
create random values for each constructor using ToADTArbitrary,
convert them into JSON using ToJSON,
read them back into Haskell using FromJSON and
make sure that the result is the same as the value it started with using Eq.