deriveArbitrary
scalacheck
deriveShrink
scalacheck