Thu Oct  7 03:37:00 PDT 2010  [email protected]
  * Improve the rule-matcher
  
  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.

    M ./compiler/basicTypes/VarEnv.lhs -17 +39
    M ./compiler/specialise/Rules.lhs -2 +2

View patch online:
http://darcs.haskell.org/cgi-bin/darcsweb.cgi?r=ghc;a=darcs_commitdiff;h=20101007103700-1287e-3f1c79428addd98ff65971c14431d61dfc45ffb0.gz

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to