Skip to content
  • Simon Peyton Jones's avatar
    Improve the rule-matcher · afd6da0d
    Simon Peyton Jones authored
    Previously it was rejecting the match
    
      Template: forall s t. map s t
      Actual:   map Int t
    
    which should obviously be fine.  It turns out that this kind of match
    comes up when specialising.  By freshening that t we could avoid the
    difficulty, but morally the (forall t) binds t and the rule should
    be alpha-equivalent regardless of the forall'd variables.
    
    This patch makes it so, and incidentally makes matching a little
    more efficient.  See Note [Eta expansion] in VarEnv.
    afd6da0d