I agree that it would be better to not compare a null reference at all. A better option would be to return multiple values or have a tuple type and pattern matching.
Don't (typed) Union types work better for errors(with pattern matching)
In haskell I think a nullable type or possibly error type frequently returned from functions which can error
ie.
data Maybe a = Nothing | Just a
data Either a b = Left a | Right b
instead of
(err,result)
like in go
It was hinted in one of the other Dart threads here (or maybe on reddit) that if enough people got on the mailing list and made a good, reasoned case for it that null could still go away.