
#15839: DerivingStrategies defaulting warning has no associated enable/suppress flag -------------------------------------+------------------------------------- Reporter: tejon | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.1 Resolution: | Keywords: deriving, | newcomer Operating System: Unknown/Multiple | Architecture: Type of failure: Poor/confusing | Unknown/Multiple error message | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by RyanGlScott): * keywords: => deriving, newcomer Comment: To be more precise, this has nothing to do with `DerivingStrategies`, but rather the interaction between `DeriveAnyClass` and `GeneralizedNewtypeDeriving`. The following code is a minimal example of the issue: {{{#!hs {-# 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. }}} Indeed, there is no flag associated with this warning, so there is currently no way to suppress this. I don't think this would be too difficult to fix, luckily. All you'd need to do is: 1. Think of a name for a flag to control this warning. 2. Toggle whether this warning gets emitted or not behind said flag. Any volunteers? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15839#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler