[GHC] #11451: Inconsistent warnings for unused binders in type and instance declarations

GHC ghc-devs at haskell.org
Sat Jan 23 23:03:38 UTC 2016


#11451: Inconsistent warnings for unused binders in type and instance declarations
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                Owner:
            Type:  bug               |               Status:  patch
        Priority:  normal            |            Milestone:  8.0.1
       Component:  Compiler          |              Version:  7.10.3
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D1825
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 I've thought of a simpler spec still

  * If a type variable bound by an explicit, user-written `forall` is
 unused, we warn.
  * But it it is bound only by a type pattern (in a class or type instance
 declaration), we don't warn even if it is otherwise unused.

 That's nice and precise.

 I'm agnostic about what flags control this.  I suppose you might want to
 say
  A. No warnings at all
  B. Warn about unused `forall`-bound variables
  C. Warn about those and unused pattern-bound variables (maybe)

 It's not clear that implementing C is worth it.  (Yes that's what we
 currently have, more or less, but inconsistently.)

 I don't have a strong opinion about what flags should switch between A and
 B, or A/B/C.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11451#comment:27>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list