anchor.diff:          let tycons, envMutRec, mutRecDefnsAfterCore = EstablishTypeDefinitionCores.TcTypeDefnCores cenv envInitial parent false tpenv (mutRecDefnsAfterSplit,m,scopem)
   
           let mutRecDefnsAfterPrep = 
  -            mutRecDefnsAfterCore |> MutRecShapes.mapTycons (fun ((typeDefnCore, members), tyconOpt, (baseValOpt, safeInitInfo)) -> 
  +            mutRecDefnsAfterCore 
  +            |> MutRecShapes.mapTycons (fun ((typeDefnCore, members), tyconOpt, (baseValOpt, safeInitInfo)) -> 
                          let (MutRecDefnsPass1DataForTycon(synTyconInfo,repr,_,_,_)) = typeDefnCore
                          let isAtOriginalTyconDefn = not (EstablishTypeDefinitionCores.isAugmentationTyconDefnRepr repr)
                          PrepareTyconMemberDefns tyconOpt isAtOriginalTyconDefn cenv envMutRec (synTyconInfo, baseValOpt, safeInitInfo, members, synTyconInfo.Range, m))
  -              
  +
           let withBindings,env = TcMutRecBindingDefns cenv envInitial parent m scopem (envMutRec, mutRecDefnsAfterPrep)
   
           // Note: generating these bindings must come after generating the members, since some in the case of structs some fields
  
positive.code:         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 = TcTyconBindings_PassB_TypeCheckAndIncrementalGeneralization cenv tpenv (envMutRec, defnsAs, uncheckedRecBinds, scopem)
  
  
          let generalizedTyparsForRecursiveBlock = 
  
negative.code:                MutRecShape.Module ((c,env2), ds2)
             | x -> x)
  
     let rec recomputeEnvs f1 f2 (env: 'Env) xs = 
         let env2, xs2 = xs |> computeEnvs f1 f2 env 
         env2, xs2 |> mapModules (fun ((data,_oldEnv : 'Env),newEnv) -> (data,newEnv))
  
     let rec expandTycons f1 xs = 
  