Re: suppress warning "Defined but not used: type variable ‘x’" in GHC-8.0

Edward Kmett ekmett at
Sun Jan 17 05:24:48 UTC 2016

As a data point I now get thousands of occurrences of this warning across
my packages.

It is quite annoying.

class Foo a where
  type Bar a

instance Foo [a] where
  type Bar [a] = Int

is enough to trigger it.

And you can't turn it off by using _ as

instance Foo [_] where
  type Bar [_] = Int

isn't legal.

I've been avoiding it for now by using

  if impl(ghc >= 8)

    ghc-options: -fno-warn-unused-matches

but this is a pretty awful addition to this warning as it stands.

On Mon, Jan 11, 2016 at 2:12 PM, Henning Thielemann <
lemming at> wrote:

> On Mon, 11 Jan 2016, Richard Eisenberg wrote:
> On Jan 9, 2016, at 6:44 PM, Henning Thielemann <
>> lemming at> wrote:
>>> instance (Natural n) => Num.Integer (Un n) where
>>>    type Repr (Un _n) = Unary
>>> GHC-7.6.3 and GHC-7.4.2 complain:
>>>    Type indexes must match class instance head
>>>    Found `Un _n' but expected `Un n'
>>>    In the type synonym instance declaration for `Num.Repr'
>>>    In the instance declaration for `Num.Integer (Un n)'
>>> GHC-7.8.4, GHC-7.10.3 and GHC-8.0 are happy with the difference.
>> I'm surprised this is accepted at all. Looks like hogwash to me. I think
>> you should post a bug report.
> Ok, but then GHC must not warn about the unused argument of Repr.
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Glasgow-haskell-users mailing list