anchor.diff:  
           SyntaxFactory.MethodDeclaration(TypeSyntax.Int, "GetHashCode")
           |> addModifiers [|SyntaxKind.PublicKeyword; SyntaxKind.OverrideKeyword|]
  -        |?> (info.AllowNull, addBodyStatement returnIfNull)
  +        |?> (info.CanBeNull, addBodyStatement returnIfNull)
           |> addBodyStatement returnGetHashCode
   
       /// Call the most adapted underlying equals method between underlying-typed expressions.
  
positive.code: 
      {
          Id = idType
          AllowNull = idType.AllowNull && idType.UnderlyingType.IsClass
          NamespaceProvided = namespaceProvided
          UnderlyingTypeSyntax = SyntaxFactory.ParseTypeName(idType.UnderlyingType.FullName)
          GeneratedTypeSyntax  = SyntaxFactory.ParseTypeName(idType.Name)
  
negative.code:     SyntaxFactory.ConstructorDeclaration(info.Id.Name)
      |> addModifiers [|SyntaxKind.PublicKeyword|]
      |> addParameter argName info.UnderlyingTypeSyntax
      |?> (not info.AllowNull && info.CanBeNull, addBodyStatement checkForNull)
      |> addBodyStatement (invocationStatement (thisMemberAccess info.CheckMethodName) [arg])
      |> addBodyStatement assignProperty
  
  