On Tuesday, January 6, 2015 4:43:16 AM UTC-8, Milan Bouchet-Valat wrote:
>
>
> > 
> > Yeah, (==){T}(a::Nullable{T}, b::T) should be able to be defined as 
> > !isnull(a) && get(a) == b 
> I'd consider this definition (which is different from the ones I 
> suggested above) as unsafe: if `a` is `null`, then you silently get 
> `false`. Better provide additional safety by either returning a 
> `Nullable`, or raising an exception. 
>

But - if "null" is just another legitimate value, why wouldn't it make 
sense to define "null != a" for all (a != null)? Why must we treat it as 
some sort of special abstraction? We don't do this with, say, imaginary 
numbers. (Identity for null is a separate issue).

Reply via email to