Wildcards in type functions vs. named wild cards

Simon Peyton Jones simonpj at microsoft.com
Tue Dec 1 13:07:53 UTC 2015

Hmm.  I suppose that

  F _ = Int

should mean just the same as

  F a = Int

But what about 
  F _a = _a -> _a

Does that mean anything different from

  F a = a -> a

If F _a = .. is allowed at all, I guess it should mean just the same as an ordinary type variable.

Would you like to implement that, and document it?  (My wildcard refactoring patch is about to land.)


|  -----Original Message-----
|  From: Jan Stolarek [mailto:jan.stolarek at p.lodz.pl]
|  Sent: 01 December 2015 12:21
|  To: Simon Peyton Jones <simonpj at microsoft.com>
|  Cc: ghc-devs at haskell.org; Michał Sośnicki <180692 at edu.p.lodz.pl>
|  Subject: Wildcards in type functions vs. named wild cards
|  Simon,
|  One of my students (Michał, CCd) is hacking on #10982 and he noticed a
|  rather unexpected behaviour. If I say:
|  {-# LANGUAGE TypeFamilies #-}
|  module T10982 where
|  type family F a where
|      F _t = Int
|  Then everything is fine. But if I enable NamedWildCards extension then
|  suddenly this code is
|  rejected:
|  T10982.hs:7:7: error:
|      Unexpected wild card: ‘_t’
|      In the declaration for type synonym ‘F’
|  I am 99% sure this is a bug and the program should be accepted even
|  with NamedWildCards. Am I correct? Does this interact in any way with
|  your upcomming refactoring of wildcards?
|  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.

More information about the ghc-devs mailing list