DerivingStrategies defaulting warning has no associated enable/suppress flag
When `DeriveAnyClass` and `GeneralizedNewtypeDeriving` are enabled together, an instance that could be derived with either one defaults to `DeriveAnyClass` and throws a warning to that effect. There is currently no flag to suppress that warning (it appears even with `-w`).
In the presence of `DerivingStrategies`, it seems desirable to be able to suppress this.
Proposed flag to control it: `-Wderiving-defaults`, after the pattern of `-Wtype-defaults`.
This flag should be part of the default warning set, as without `DerivingStrategies` it remains a bad idea to have both newtype and anyclass active.
Minimal example (thanks RyanGIScott):
```
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Bug where
class C a
newtype T a = MkT a deriving C
```
```
$ /opt/ghc/8.6.1/bin/ghci Bug.hs
GHCi, version 8.6.1: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/rgscott/.ghci
[1 of 1] Compiling Bug ( Bug.hs, interpreted )
Bug.hs:6:30: warning:
• Both DeriveAnyClass and GeneralizedNewtypeDeriving are enabled
Defaulting to the DeriveAnyClass strategy for instantiating C
• In the newtype declaration for ‘T’
|
6 | newtype T a = MkT a deriving C
| ^
Ok, one module loaded.
```
issue