More compile-time error checking in NUMBER-DISPATCH
Check for some problematic cases where non-disjoint types are used
in different clauses for the same variable and throw an error at
macroexpand-time if such a case is detected. Otherwise these could
lead to the generated type-dispatching form not covering all intended
combinations of types.
The intention is to make writing and modifying complex NUMBER-DISPATCH
forms safer.
All existing uses of NUMBER-DISPATCH, insofar as they contain
non-disjoint types, are unproblematic and graded as such by the
check; thus they continue to work unchanged.
Signed-off-by: Christophe Rhodes <csr21@cantab.net>