
#11449: Treat '_' consistently in type declarations -------------------------------------+------------------------------------- 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 RyanGlScott): Never mind, I don't think things like {{{#!hs instance C [_] where type T [_] = Int }}} should be allowed after all (see [https://ghc.haskell.org/trac/ghc/ticket/11450#comment:18 my comment] in #11450 for rationale). That being said, I don't know if we should rule out putting wildcards in class instances altogether. Typeclasses without associated type families or methods wouldn't have the issue of requiring the types to be the same, so you could conceivably have something like this: {{{#!hs class C a where instance C _ where }}} Although I don't know how useful this is. And I really don't know how to feel about things like `data T _ = T` or `class C a _`, since we'd be allowing wildcards in place of `TyVar`s, which is uncharted territory. Neither are Haskell98 for sure, so I agree that if we allow such a thing, you should need a language extension to turn it on. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11449#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler