anchor.diff:                              if tcref.IsStructOrEnumTycon then 
                                   mkUnit cenv.g tcref.Range, false,None, defnCs
                               else
  -                                let inheritsExpr,_ = TcNewExpr cenv envInitial tpenv cenv.g.obj_ty None true (SynExpr.Const(SynConst.Unit,tcref.Range)) tcref.Range
  +                                let inheritsExpr,_ = TcNewExpr cenv envForDecls tpenv cenv.g.obj_ty None true (SynExpr.Const(SynConst.Unit,tcref.Range)) tcref.Range
                                   inheritsExpr,false,None,defnCs
                          
  -                    let envForTycon = MakeInnerEnvForTyconRef cenv envInitial tcref false 
  +                    let envForTycon = MakeInnerEnvForTyconRef cenv envForDecls tcref false 
   
                       // Compute the cpath used when creating the hidden fields 
                       let cpath = envForTycon.eAccessPath
  
positive.code:         //    uncheckedBindsRev:   accumulation of unchecked bindings
          let (defnsAs: MutRecBindingsPassA), (tpenv,_,uncheckedBindsRev) =
              let initialOuterState = (tpenv, 0, ([]: PreCheckingRecursiveBinding list))
              (initialOuterState, envMutRec, mutRecDecls) |||> MutRecShapes.mapFoldWithEnv (fun outerState envForDefns defns -> 
                let (tpenv,recBindIdx,uncheckedBindsRev) = outerState
                match defns with 
                | MutRecShape.Module _ ->  failwith "unreachable"
                | MutRecShape.Lets recBinds -> 
                  let normRecDefns = 
                     [ for (RecDefnBindingInfo(a,b,c,bind)) in recBinds do 
                         yield NormalizedRecBindingDefn(a,b,c,BindingNormalization.NormalizeBinding ValOrMemberBinding cenv envForDefns bind) ]
                  let bindsAndValues,(tpenv,recBindIdx) = ((tpenv,recBindIdx), normRecDefns) ||> List.mapFold (AnalyzeAndMakeAndPublishRecursiveValue ErrorOnOverrides false cenv envForDefns) 
                  let binds = bindsAndValues |> List.map fst |> List.concat
  
                  let defnAs = MutRecShape.Lets binds
  
negative.code:         // Check the escape condition for all extraGeneralizableTypars.
          // First collect up all the extraGeneralizableTypars.
          let allExtraGeneralizableTypars = 
              defnsAs |> MutRecShapes.collectTycons |> List.collect (fun (TyconBindingsPassA(_, _, _, _, copyOfTyconTypars, _, defnAs)) ->
                  [ yield! copyOfTyconTypars
                    for defnA in defnAs do 
                        match defnA with
  