Unused type variables with non-linear patterns

Richard Eisenberg eir at cis.upenn.edu
Fri Dec 11 16:02:14 UTC 2015


I agree with Michael. This should not emit a warning.

While you're in this area, make sure that

> type instance F _ _ = Int

indeed matches `F Char Bool`. It's easy to imagine both underscores being treated as the same variable, which is not what the user intends.

Thanks,
Richard

On Dec 10, 2015, at 4:32 PM, Michael Sloan <mgsloan at gmail.com> wrote:

> I definitely think this should be considered a usage.  Ideally, you should always be able to resolve warnings, but there'd be no straightforward way to do so if LHS-only usages cause warnings.  Also, It's quite useful to use type variables only on the LHS.  Usage example: https://hackage.haskell.org/package/base-4.8.1.0/docs/src/Data.Type.Equality.html#EqStar
> 
> -Michael
> 
> On Thu, Dec 10, 2015 at 6:48 AM, Jan Stolarek <jan.stolarek at p.lodz.pl> wrote:
> An intersting thing came up when implementing warnings for unused type variables in type family
> patterns (#10982 / D1576):
> 
> type family X a b where
>   X a a = Int
> 
> Should we emit a warning that `a` is unused? It does not appear in the RHS but it is actually used
> because of non-linear pattern. We can fix this by prefixing both appearances of `a` with an
> underscore - this silences the warning and maintains semantics. Nevertheless, if a variable is
> unused it should be perfectly valid to replace it with an underscore - that is not the case in
> this example. Thoughts?
> 
> Janek
> 
> ---
> Politechnika Łódzka
> Lodz University of Technology
> 
> Treść tej wiadomości zawiera informacje przeznaczone tylko dla adresata.
> Jeżeli nie jesteście Państwo jej adresatem, bądź otrzymaliście ją przez pomyłkę
> prosimy o powiadomienie o tym nadawcy oraz trwałe jej usunięcie.
> 
> This email contains information intended solely for the use of the individual to whom it is addressed.
> If you are not the intended recipient or if you have received this message in error,
> please notify the sender and delete it from your system.
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
> 
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20151211/696deb9a/attachment-0001.html>


More information about the ghc-devs mailing list