-;;; Cont is a continuation we are doing a type check on and Types is a list
-;;; of types that we are checking its values against. If we have proven
-;;; that Cont generates a fixed number of values, then for each value, we check
-;;; whether it is cheaper to then difference between the proven type and
-;;; the corresponding type in Types. If so, we opt for a :HAIRY check with
-;;; that test negated. Otherwise, we try to do a simple test, and if that is
-;;; impossible, we do a hairy test with non-negated types. If true,
-;;; Force-Hairy forces a hairy type check.
+;;; CONT is a continuation we are doing a type check on and TYPES is a
+;;; list of types that we are checking its values against. If we have
+;;; proven that CONT generates a fixed number of values, then for each
+;;; value, we check whether it is cheaper to then difference between
+;;; the proven type and the corresponding type in TYPES. If so, we opt
+;;; for a :HAIRY check with that test negated. Otherwise, we try to do
+;;; a simple test, and if that is impossible, we do a hairy test with
+;;; non-negated types. If true, Force-Hairy forces a hairy type check.
+;;;
+;;; When doing a non-negated check, we call MAYBE-WEAKEN-CHECK to
+;;; weaken the test to a convenient supertype (conditional on policy.)
+;;; If SPEED is 3, or DEBUG-INFO is not particularly important (DEBUG
+;;; <= 1), then we allow weakened checks to be simple, resulting in
+;;; less informative error messages, but saving space and possibly
+;;; time.