Skip to content
  • Simon Peyton Jones's avatar
    Entirely re-jig the handling of default type-family instances (fixes Trac #9063) · 9b8ba629
    Simon Peyton Jones authored
    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.
    9b8ba629