We have inherited both a positive and negative atomic type proposition
from occurrence typing. Since we have intersection and negation types
in Typed Clojure, we can replace negative type propositions with
positive type propositions on a negated type.
(! (U nil false) x)
(is (Not (U nil false)) x)
Work started here: https://github.com/typedclojure/core.typed/pull/25