Changes between Version 32 and Version 33 of TypeFunctionsSolving


Ignore:
Timestamp:
Aug 4, 2008 3:02:33 PM (6 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctionsSolving

    v32 v33  
    8181 
    8282check :: FlattenedEqInst -> [FlattenedEqInst] 
    83 -- Does OccursCheck + Decomp + Swap (of new-single) 
     83-- Does OccursCheck + Decomp + Triv + Swap (of new-single) 
    8484check [[t ~ t]] = [] 
    8585check [[x ~ t]] | x `occursIn` t = fail 
     
    119119== Solving == 
    120120 
    121 '''TODO:''' Partition the rules depending on which if the three forms of normal equalities they apply to!!! 
     121'''TODO:''' 
     122 * Rules applying to family equalities: 
     123  * IdenticalLHS only applies to family equalities (both local and wanteds) 
     124  * Top only applies to family equalities (both locals and wanteds) 
     125 We should apply IdenticalLHS first as it cheaper and potentially reduces the number of applications of Top. 
     126 * Rules applying to variable equalities: 
     127  * Unify only applies to all wanted flexible variable equalities 
     128  * Subst (= local for variable equalities) applies to all variable equalities, where local variable equalities are substituted into all equalities, but wanted variable equalities are only substituted into wanted equalities. 
     129 We should first apply Unify where possible and, only when that is exhausted, apply Subst.  This is as Unify is cheaper and has global impact (instantiates variables in the environment, too). 
    122130 
    123131Notes: