anchor.diff:      let iequatableOf t =
           SyntaxFactory.QualifiedName(iEquatableNamespace, NameSyntax.MakeGeneric iEquatable.Name [|t|])
   
  +    let makeOperator isNot leftArgType rightArgType =
  +        let operatorToken = if isNot then SyntaxKind.ExclamationEqualsToken else SyntaxKind.EqualsEqualsToken
  +
  +        let equalsCall = invocation (thisMemberAccess "Equals") [| identifier "left"; identifier "right" |]
  +        let equalsCall = if isNot then not' equalsCall :> ExpressionSyntax else equalsCall :> ExpressionSyntax
  +        let body = ret equalsCall
  +
  +        SyntaxFactory.OperatorDeclaration(TypeSyntax.Bool, SyntaxFactory.Token(operatorToken))
  +        |> addModifiers [|SyntaxKind.PublicKeyword;SyntaxKind.StaticKeyword|]
  +        |> addParameter "left" leftArgType
  +        |> addParameter "right" rightArgType
  +        |> addBodyStatement body
  +
  +    let addOperators info (classDeclaration:ClassDeclarationSyntax) =
  +        classDeclaration
  +        |> addMember (makeOperator true info.GeneratedTypeSyntax info.GeneratedTypeSyntax)
  +        |> addMember (makeOperator false info.GeneratedTypeSyntax info.GeneratedTypeSyntax)
  +
   module private Casts =
       let addCast fromType toType cast expressionMaker generatedClass =
           let parameterName = "x"
  
positive.code:             SyntaxFactory.ConversionOperatorDeclaration(SyntaxFactory.Token(cast'), toType)
                  |> addModifiers [|SyntaxKind.PublicKeyword;SyntaxKind.StaticKeyword|]
                  |> addParameter parameterName fromType
                  |> addBodyStatement (SyntaxFactory.ReturnStatement(expressionMaker parameterName)) 
  
          let addCast' cast' = generatedClass |> addMember (makeCast cast')
  
  
negative.code:         |> addMember' Equality.makeGetHashCode
          |> addMember' Equality.makeEquals
          |> addMember' Equality.makeEqualsGenerated
          |> Equality.addOperators info
          |?> (info.Id.EqualsUnderlying, addMember' Equality.makeEqualsUnderlying)
          |> Casts.addCastFromUnderlyingType info
          |> Casts.addCastToUnderlyingType info
  