`(,function stream ,@args)))))
`(funcall (,slot stream) stream ,@args))))
-(defmacro with-out-stream (stream (slot &rest args) &optional stream-dispatch)
- `(let ((stream (out-synonym-of ,stream)))
+(defmacro with-out-stream/no-synonym (stream (slot &rest args) &optional stream-dispatch)
+ `(let ((stream ,stream))
,(if stream-dispatch
`(if (ansi-stream-p stream)
(funcall (,slot stream) stream ,@args)
`(,(destructuring-bind (function &rest args) stream-dispatch
`(,function stream ,@args)))))
`(funcall (,slot stream) stream ,@args))))
+
+(defmacro with-out-stream (stream (slot &rest args) &optional stream-dispatch)
+ `(with-out-stream/no-synonym (out-synonym-of ,stream)
+ (,slot ,@args) ,stream-dispatch))
+
\f
;;;; These are hacks to make the reader win.