anchor.diff:            
   
         let binds  = 
  -          (envMutRec, mutRecDefns) ||> MutRecShapes.mapTyconsWithEnv (fun envinner tyconData -> 
  +          (envMutRec, mutRecDefns) ||> MutRecShapes.mapTyconsWithEnv (fun envForDecls tyconData -> 
                 let (MutRecDefnsPass2DataForTycon(tyconOpt, declKind, tcref, _, _, declaredTyconTypars, _, _, _)) = tyconData
                 let obinds = tyconBindingsOfTypeDefn tyconData
                 let ibinds  = 
  -                      let intfTypes = interfacesFromTypeDefn envinner tyconData
  -                      let slotImplSets = DispatchSlotChecking.GetSlotImplSets cenv.infoReader envinner.DisplayEnv false (List.map (fun (ity,_,m) -> (ity,m)) intfTypes)
  +                      let intfTypes = interfacesFromTypeDefn envForDecls tyconData
  +                      let slotImplSets = DispatchSlotChecking.GetSlotImplSets cenv.infoReader envForDecls.DisplayEnv false (List.map (fun (ity,_,m) -> (ity,m)) intfTypes)
                         (intfTypes, slotImplSets) ||> List.map2 (interfaceMembersFromTypeDefn tyconData) |> List.concat
                 MutRecDefnsPass2InfoForTycon(tyconOpt, tcref, declaredTyconTypars, declKind, obinds @ ibinds))
         
  
positive.code:             // The envForTycon is the environment used for name resolution within the let and member bindings
              // of the type definition. This becomes 'envStatic' and 'envInstance' for the two 
               
              let initialOuterState = (tpenv,([]: PostGeneralizationRecursiveBinding list),([]: PreGeneralizationRecursiveBinding list),uncheckedRecBindsTable,envMutRec)
  
              (initialOuterState,envMutRec,defnsAs) |||> MutRecShapes.mapFoldWithEnv (fun outerState envForDecls defnsA -> 
  
  
negative.code:                 else 
                      None)
  
          // PassA: create member prelimRecValues for "recursive" items, i.e. ctor val and member vals 
          // PassA: also processes their arg patterns - collecting type assertions 
          let (envMutRec, defnsAs, uncheckedRecBinds, tpenv) =  TcMutRecBindings_PassA_CreateRecursiveValuesAndCheckArgumentPatterns cenv scopem tpenv (envMutRec, mutRecDecls)
  
          // PassB: type check pass, convert from ast to tast and collects type assertions, and generalize
          let defnsBs, generalizedRecBinds, tpenv = TcMutRecBindings_PassB_TypeCheckAndIncrementalGeneralization cenv tpenv envInitial (envMutRec, defnsAs, uncheckedRecBinds, scopem)
  
  
          let generalizedTyparsForRecursiveBlock = 
  