Speed up gArbitrary for sum types by sampling only once per sum type