anchor.diff:      |?> (info.AllowNull, addBodyStatement returnIfNull)
       |> addBodyStatement returnGetHashCode
   
  -let private makeEquals info (idType : IdType) =
  +let private makeEquals info =
       let returnIfNull = info |> makeIfValueNull (fun block ->
           block |> addStatement (ret (Literal.Int 0))
           )
  
positive.code: 
      let notIs typeSyntax = not' (is typeSyntax parameter)
      let incorrectTypeCondition = 
          if idType.EqualsUnderlying then
              and' (notIs info.GeneratedTypeSyntax) (notIs info.UnderlyingTypeSyntax) :> ExpressionSyntax
          else
              notIs info.GeneratedTypeSyntax :> ExpressionSyntax
  
negative.code:         (equals (info.ValueMemberAccess) Literal.Null)
          (fillBlock emptyBlock)
  
  let private makeToString info =
      let isString = info.Id.Type = typedefof<string>
      let returnToString =
          if isString then
              (ret (thisMemberAccess info.Id.ValueProperty))
          else
              info |> returnCallVoidMethodOnValue "ToString"
  
  