- `(if (ansi-stream-p stream)
- (funcall (,slot stream) stream ,@args)
- ,@(when stream-dispatch
- `(,(destructuring-bind (function &rest args) stream-dispatch
- `(,function stream ,@args)))))
- `(funcall (,slot stream) stream ,@args))))
+ `(if (ansi-stream-p stream)
+ (funcall (,slot stream) stream ,@args)
+ ,@(when stream-dispatch
+ `(,(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))
+