# Pastebin 8j1d1vT0 Given: data Bar f = Bar (f [Int]) deriving Generic deriving via Generically (Bar f) instance (forall a . Semigroup a => Semigroup (f a)) => Semigroup (Bar f) deriving via Generically (Bar f) instance (forall a . Monoid a => Monoid (f a)) => Monoid (Bar f) GHC accepts the first instance declaration but rejects the second with: • Could not deduce (Monoid a) arising from the superclasses of an instance declaration from the context: forall a. Monoid a => Monoid (f a) bound by the instance declaration at or from: Semigroup a bound by a quantified context at Possible fix: add (Monoid a) to the context of a quantified context • In the instance declaration for ‘Monoid (Bar f)’