[GHC] #9063: Default associated type instances are too general

GHC ghc-devs at haskell.org
Tue Jul 15 06:57:11 UTC 2014


#9063: Default associated type instances are too general
-------------------------------------+------------------------------------
        Reporter:  goldfire          |            Owner:  simonpj
            Type:  bug               |           Status:  new
        Priority:  normal            |        Milestone:
       Component:  Compiler          |          Version:  7.8.2
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown      |       Difficulty:  Unknown
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:
-------------------------------------+------------------------------------

Comment (by Simon Peyton Jones <simonpj@…>):

 In [changeset:"9b8ba62991ae22420a0c4486127a3b22ee7f22bd/ghc"]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="9b8ba62991ae22420a0c4486127a3b22ee7f22bd"
 Entirely re-jig the handling of default type-family instances (fixes Trac
 #9063)

 In looking at Trac #9063 I decided to re-design the default
 instances for associated type synonyms.  Previously it was all
 jolly complicated, to support generality that no one wanted, and
 was arguably undesirable.

 Specifically

 * The default instance for an associated type can have only
   type variables on the LHS.  (Not type patterns.)

 * There can be at most one default instances declaration for
   each associated type.

 To achieve this I had to do a surprisingly large amount of refactoring
 of HsSyn, specifically to parameterise HsDecls.TyFamEqn over the type
 of the LHS patterns.

 That change in HsDecls has a (trivial) knock-on effect in Haddock, so
 this commit does a submodule update too.

 The net result is good though.  The code is simpler; the language
 specification is simpler.  Happy days.

 Trac #9263 and #9264 are thereby fixed as well.
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9063#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list