
#11451: Inconsistent warnings for unused binders -------------------------------------+------------------------------------- Reporter: simonpj | Owner: Type: bug | Status: new Priority: normal | Milestone: 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): Wiki Page: | -------------------------------------+------------------------------------- Comment (by goldfire): Let's look more closely at {{{ instance C (Maybe a) where op x = x }}} Simon says that `a` is patently unused. I disagree: `a` is used in the instance head! The head of an instance is a type, and thus that `a` is a ''use'' site, not a ''binding'' site. The point of confusion is that we use usage sites to infer the implicit bindings. Contrast to a class declaration, where the type variables are indeed binding sites. Separately, I'm agreed with Simon's very last point about warning about `x` but not `a`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11451#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler