anchor.diff:                        (intfTypes, slotImplSets) ||> List.map2 (interfaceMembersFromTypeDefn tyconData) |> List.concat
                 MutRecDefnsPhase2InfoForTycon(tyconOpt, tcref, declaredTyconTypars, declKind, obinds @ ibinds))
         
  -      TyconBindingChecking.TcMutRecBindingInfos cenv envInitial tpenv bindsm scopem (envMutRec, binds)
  +      MutRecBindingChecking.TcMutRecDefns_Phase2_Bindings cenv envInitial tpenv bindsm scopem (envMutRec, binds)
   
       with e -> errorRecovery e scopem; [], envMutRec
   
  
positive.code:     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 mutRecDefnsAfterPrep = 
              mutRecDefnsAfterCore 
  
negative.code:             
              // Note: tycon.HasOverride only gives correct results after we've done the type augmentation 
              let hasExplicitObjectEqualsOverride = tycon.HasOverride cenv.g "Equals" [cenv.g.obj_ty]
              let hasExplicitGenericIEquatable = tcaugHasNominalInterface cenv.g tcaug cenv.g.system_GenericIEquatable_tcref
              
              if hasExplicitGenericIEquatable then 
                  errorR(Error(FSComp.SR.tcImplementsIEquatableExplicitly(tycon.DisplayName),m)) 
  