In fact

We can use the Arbitrary implementation for the components of Person to create the Arbitrary for Person

instance Arbitrary Person where
  arbitrary = arbitrary >>= \a ->
              arbitrary >>= \f ->
              arbitrary >>= \s ->
              arbGender >>= \g ->
              return (P a f s g)
  coarbitrary = undefined -- todo another day