anchor.diff:          |> addMember' makeCtor
           |> addMember' makeCheckValuePartial
           |> addMember' makeToString
  -        |> addMember' Equality.makeGetHashCode
  -        |> addMember' Equality.makeEquals
  -        |> addMember' Equality.makeEqualsGenerated
  -        |> addMember' Equality.makeStaticEquals
  -        |> Equality.addOperators info
  -        |?> (info.Id.EqualsUnderlying, addMember' Equality.makeEqualsUnderlying)
  +        |> Equality.addEqualityMembers info 
           |> Casts.addAll info
           |> ParseMethods.addParseMethods info
           |> Convertible.addIConvertibleMembers info
  
positive.code: 
      let private iEquatable = typedefof<IEquatable<_>>
      let private iEquatableNamespace = NameSyntax.MakeQualified(iEquatable.Namespace.Split('.'))
      let iequatableOf t =
          SyntaxFactory.QualifiedName(iEquatableNamespace, NameSyntax.MakeGeneric iEquatable.Name [|t|])
  
      let makeOperator info eq leftArgType rightArgType =
          let left = identifier "left"
          let right = identifier "right"
  
  
negative.code: module private Equality =
      open System.Reflection
  
      let private makeGetHashCode info =
          let returnGetHashCode = ret (getHashCode info.ThisValueMemberAccess)
  
          let returnIfNull = info |> makeIfValueNull (fun block ->
  