I have seen this feature expression in several source files, for example in /code/sysmacs.lisp:

(defmacro out-synonym-of (stream &optional check-type)
  (let ((svar (gensym)))
    `(let ((,svar ,stream))
       (cond ((null ,svar) *standard-output*)
             ((eq ,svar t) *terminal-io*)
             (t ,@(when check-type `((check-type ,svar ,check-type)))
                (unless (output-stream-p ,svar)
                  (error 'simple-type-error
                         :datum ,svar
                         :expected-type '(satisfies output-stream-p)
                         :format-control "~S isn't an output stream."
                         :format-arguments (list ,svar)))

It seems that it is some old CMUCL feature expression. Is it okay to get rid of it, at least in that macro? I need the stream type check to be made by default in order to fix this issue:


The first step is to pass t as a second macro argument, and the second is to remove or enable 'high-security', as one may guess from PRINT definition:

(defun print (object &optional stream)
  "Output a newline, the mostly READable printed representation of OBJECT, and
  space to the specified STREAM."
  (let ((stream (out-synonym-of stream)))
    (terpri stream)
    (prin1 object stream)
    (write-char #\space stream)