anchor.diff:      let TcMutRecDefns cenv envInitial parent tpenv (mutRecDefns: MutRecDefnsInitialData,m,scopem) =
           let inSig = false
           let mutRecDefnsAfterSplit = SplitMutRecDefns cenv mutRecDefns
  -        let tycons, envMutRec, mutRecDefnsAfterCore = EstablishTypeDefinitionCores.TcTypeDefnCores cenv envInitial parent inSig tpenv (mutRecDefnsAfterSplit,m,scopem)
  +        let tycons, envMutRec, mutRecDefnsAfterCore = EstablishTypeDefinitionCores.TcMutRecDefns_Phase1 cenv envInitial parent inSig tpenv (mutRecDefnsAfterSplit,m,scopem)
   
           let mutRecDefnsAfterPrep = 
               mutRecDefnsAfterCore 
  
positive.code:                       (intfTypes, slotImplSets) ||> List.map2 (interfaceMembersFromTypeDefn tyconData) |> List.concat
                MutRecDefnsPhase2InfoForTycon(tyconOpt, tcref, declaredTyconTypars, declKind, obinds @ ibinds))
        
        TyconBindingChecking.TcMutRecBindingInfos cenv envInitial tpenv bindsm scopem (envMutRec, binds)
  
      with e -> errorRecovery e scopem; [], envMutRec
  
  
negative.code:                               
                            | SynMemberDefn.ImplicitInherit (typ,arg,_baseIdOpt,m),_ ->
                                match tcref.TypeOrMeasureKind with TyparKind.Measure -> error(Error(FSComp.SR.tcMeasureDeclarationsRequireStaticMembers(), m)) | _ -> ()
                                // Phase2A: inherit typ(arg) as base - pass through 
                                // Phase2A: pick up baseValOpt! 
                                let baseValOpt = incrClassCtorLhsOpt |> Option.bind (fun x -> x.InstanceCtorBaseValOpt)
                                let innerState = (incrClassCtorLhsOpt,envForTycon,tpenv,recBindIdx,uncheckedBindsRev)
                                [Phase2AInherit (typ,arg,baseValOpt,m); Phase2AIncrClassCtorJustAfterSuperInit], innerState
  