0.8.6.35:
At the request of the type system's most heavy user...
... refactor NEGATION-TYPEs
... make NEGATE an operation in TYPE-CLASS
... define type methods for :NEGATE, replacing one god-awful
NOT type translator
... define a (cached) TYPE-NEGATION function
... replace too many uses of
(specifier-type `(not ,(type-specifier foo)))
with (type-negation foo)
We pass as many tests as we used to (both here and in PFD's suite)
and we now go faster than we did before 0.8.6 on PFD's random
tester. Sounds good to me.
(This was initially part I of a two part refactor. This stage
turns out to be enough for now; if it hadn't been, it should be
possible to achieve even greater speed by changing the representation
of CONS types to include not just CAR and CDR types but also
their negations; then operations on CONS types such as UNION and NEGATE
would be much much faster, at a slight cost in initialization).