
Re comment:16: But your two wildcards are referring to the same type. I
#11450: Associated types at wrong type in instance -------------------------------------+------------------------------------- Reporter: simonpj | Owner: Type: bug | Status: new Priority: high | Milestone: 8.0.1 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: #11449, #11451 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): Replying to [comment:17 goldfire]: think we should require a name here, because the name is actually used twice. I suppose if we take interpret every occurrence of `_` as a fresh type variable, then the `Either a _` in the instance head cannot be the same as the one in the associated type family instance. And there's even another reason to require named type variables: what about `-XInstanceSigs`? If you allowed wildcards in instances, you could have a scenario like this: {{{#!hs class C a where c :: a -> String instance C (Maybe _) where c :: Maybe _ -> String c _ = "huh?" }}} And we certainly don't allow wildcards in term-level type signatures like this. In light of this, I retract my objection in comment:16. As Simon said, the description of the ticket is still right. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11450#comment:18 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler