anchor.diff:  
   (define-compiler-macro require-type-for (&whole call datum spec place)
     (if (constantp spec)
  -      (once-only (datum)
  -        `(if (typep ,datum ,spec)
  -             ,datum
  -             (%require-type-for ,datum ,spec ,place)))
  +      (let ((type (eval spec)))
  +        (once-only (datum)
  +          `(if (typep ,datum ,spec)
  +               ,datum
  +               (truly-the ,type
  +                 (%require-type-for ,datum ,spec ,place)))))
         call))
   
   (defun %require-type-for (datum spec place)
  
positive.code: 
  (define-compiler-macro require-type (&whole call datum spec)
    (if (constantp spec)
        (once-only (datum)
          `(if (typep ,datum ,spec)
               ,datum
               (%require-type ,datum ,spec)))
        call))
  
  (defun %require-type (datum spec)
  
negative.code:      ,@(loop for fn in fns
               collect `(declaim (ext:constant-function ,fn)))))
  
  (defmacro truly-the (type &body (expr))
    #+sbcl `(sb-ext:truly-the ,type ,expr)
    #+cmucl `(ext:truly-the ,type ,expr)
    #-(or sbcl cmucl) `(the ,type ,expr))
  