Changes between Version 40 and Version 41 of TypeFunctionsSolving


Ignore:
Timestamp:
Aug 7, 2008 7:57:03 AM (6 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctionsSolving

    v40 v41  
    125125  * !SubstFam (formerly, IdenticalLHS) only applies to family equalities (both local and wanteds) 
    126126  * Top only applies to family equalities (both locals and wanteds) 
    127  We should apply !SubstFam first as it cheaper and potentially reduces the number of applications of Top.  On the other hand, for each family equality, we may want to try to reduce it with Top, and if that fails, use it with !SubstFam.  (That strategy should lend itself well to an implementation.) 
     127 We should apply !SubstFam first as it cheaper and potentially reduces the number of applications of Top.  On the other hand, for each family equality, we may want to try to reduce it with Top, and if that fails, use it with !SubstFam.  (That strategy should lend itself well to an implementation.)  But be careful, we need to apply Top exhaustively, to avoid non-termination.  More precisely, if we interleave Top and SubstFam, we can easily diverge. 
    128128 * Rules applying to variable equalities: 
    129129  * !SubstVar (formerly, Local) applies to variable equalities (both locals and wanteds) 
     
    153153== Examples == 
    154154 
    155 === Substituting wanted family equalities with !SubstFun is crucial === 
     155=== Substituting wanted family equalities with !SubstFam is crucial if the right-hand side contains a flexible type variable === 
    156156 
    157157{{{