Skip to content
  • Simon Peyton Jones's avatar
    [project @ 2004-12-20 17:16:24 by simonpj] · c45a0ac5
    Simon Peyton Jones authored
    --------------------------------
    	Deal properly with dual-renaming
    	--------------------------------
    
    When comparing types and terms, and during matching, we are faced
    with 
    	\x.e1	~   \y.e2
    
    There are many pitfalls here, and GHC has never done the job properly.
    Now, at last it does, using a new abstraction VarEnv.RnEnv2.  See
    comments there for how it works.
    
    There are lots of consequential changes to use the new stuff, especially
    in 
    	types/Type (type comparison), 
    	types/Unify (matching on types)
    	coreSyn/CoreUtils (equality on expressions), 
    	specialise/Rules (matching).
    
    I'm not 100% certain of that I've covered all the bases, so let me
    know if something unexpected happens after you update.  Maybe wait until
    a nightly build has worked ok first!
    c45a0ac5