Negation types suffer as well
(sb-kernel:specifier-type '(not (complex (double-float 1d0 2d0)))) => (OR (NOT (COMPLEX DOUBLE-FLOAT)) (COMPLEX (DOUBLE-FLOAT * (1.0d0))) (COMPLEX (DOUBLE-FLOAT (2.0d0))))
(typep #c(1.0d0 3.0d0) '(not (complex (double-float 1.0d0 2.0d0)))) => NIL
Negation types suffer as well
(sb-kernel: specifier- type '(not (complex (double-float 1d0 2d0)))) =>
(OR (NOT (COMPLEX DOUBLE-FLOAT)) (COMPLEX (DOUBLE-FLOAT * (1.0d0))) (COMPLEX (DOUBLE-FLOAT (2.0d0))))
(typep #c(1.0d0 3.0d0) '(not (complex (double-float 1.0d0 2.0d0)))) => NIL