Generic1 and guards on generic versions
conditionally derive Generic and Generic1 on new enough GHCs