anchor.diff:      let vis = tcref.TypeReprAccessibility
       let tps = tcref.Typars m
   
  -    let objEqualsVal = mkValSpec g tcref tmty vis  (Some(mkEqualsSlotSig g)) "Equals" (tps +-> (mkEqualsObjTy g tmty)) unaryArg
  -    let nocEqualsVal = mkValSpec g tcref tmty vis  (if tcref.Deref.IsExceptionDecl then None else Some(mkGenericIEquatableEqualsSlotSig g tmty)) "Equals" (tps +-> (mkEqualsTy g tmty)) unaryArg
  +    let objEqualsVal = mkValSpec g tcref tmty vis (Some(mkEqualsSlotSig g)) "Equals" (tps +-> (mkEqualsObjTy g tmty)) unaryArg
  +    let nocEqualsVal = mkValSpec g tcref tmty vis (if tcref.Deref.IsExceptionDecl then None else Some(mkGenericIEquatableEqualsSlotSig g tmty)) "Equals" (tps +-> (mkEqualsTy g tmty)) unaryArg
       objEqualsVal, nocEqualsVal
       
   let MakeValsForEqualityWithComparerAugmentation g (tcref: TyconRef) =
       let _, tmty = mkMinimalTy g tcref
       let vis = tcref.TypeReprAccessibility
       let tps = tcref.Typars tcref.Range
  -    let objGetHashCodeVal = mkValSpec g tcref tmty vis  (Some(mkGetHashCodeSlotSig g)) "GetHashCode" (tps +-> (mkHashTy g tmty)) unitArg
  +    let objGetHashCodeVal = mkValSpec g tcref tmty vis (Some(mkGetHashCodeSlotSig g)) "GetHashCode" (tps +-> (mkHashTy g tmty)) unitArg
       let withcGetHashCodeVal = mkValSpec g tcref tmty vis (Some(mkIStructuralEquatableGetHashCodeSlotSig g)) "GetHashCode" (tps +-> (mkHashWithComparerTy g tmty)) unaryArg
       let withcEqualsVal  = mkValSpec g tcref tmty vis (Some(mkIStructuralEquatableEqualsSlotSig g)) "Equals" (tps +-> (mkEqualsWithComparerTy g tmty)) tupArg
       objGetHashCodeVal, withcGetHashCodeVal, withcEqualsVal
  
positive.code: let unitArg = ValReprInfo.unitArgData
  let unaryArg = [ ValReprInfo.unnamedTopArg ]
  let tupArg = [ [ ValReprInfo.unnamedTopArg1; ValReprInfo.unnamedTopArg1 ] ]
  let mkValSpec g (tcref: TyconRef) tmty vis  slotsig methn ty argData = 
      let m = tcref.Range 
      let tps = tcref.Typars m
      let final = isUnionTy g tmty || isRecdTy g tmty || isStructTy g tmty 
      let membInfo = match slotsig with None -> nonVirtualMethod tcref | Some slotsig -> slotImplMethod(final, tcref, slotsig) 
      let inl = ValInline.Optional
      let args = ValReprInfo.unnamedTopArg :: argData
      let topValInfo = Some (ValReprInfo (ValReprInfo.InferTyparInfo tps, args, ValReprInfo.unnamedRetVal)) 
  
negative.code:     let tps = tcref.Typars m
      let vis = tcref.TypeReprAccessibility
  
      mkValSpec g tcref tmty vis (Some(mkIComparableCompareToSlotSig g)) "CompareTo" (tps +-> (mkCompareObjTy g tmty)) unaryArg, 
      mkValSpec g tcref tmty vis (Some(mkGenericIComparableCompareToSlotSig g tmty)) "CompareTo" (tps +-> (mkCompareTy g tmty)) unaryArg
      
  let MakeValsForCompareWithComparerAugmentation g (tcref: TyconRef) =
      let m = tcref.Range
  