I was merely adding context.<p>The arguments mostly boils down to<p>- the mathematical rigor, as you suggest, which besides the issue of contradictions also introduces problems for the implentattion of things like query optimization.<p>- non-null solutions are possible, f.ex. normalization, which besids avoiding the null-issue also comes with other benefits.<p>However, I&#x27;m not sure Nullable&lt;T&gt;, is problematic in the same sense. It is, after all, an explicit value domain, and not part of any logic at all. Notice how the debate about relational systems doesn&#x27;t talk of a Boolean value domain (MSSQL doesn&#x27;t even have a Boolean type, only a single bit number type) but of the predicate logic resulting from existing and non-existing rows.<p>I guess a comparable situation would rather be, if you have a Nullable&lt;T&gt; where T:class, how do you treat the difference between boxed and unboxed nulls?<p>In, Scala, f.ex., it&#x27;s perfectly valid to have Some(null) != None, which means you need to handle the null value even for non-None values.