anchor.diff:  (defmethod print-object ((pipe buffered-pipe) stream)
     (print-unreadable-object (pipe stream :type t :identity t)
       (let ((bufsize (length (buffer pipe))))
  -      (format stream ":input ~:[:closed~;:open~] :output ~:[:closed~;:open~] :buffer (~A / ~A) :name ~S"
  +      (format stream ":element-type ~S :input ~:[:closed~;:open~] :output ~:[:closed~;:open~] :buffer (~A / ~A) :name ~S"
  +              (pipe-element-type pipe)
                 (open-stream-p (pipe-input-stream  pipe))
                 (open-stream-p (pipe-output-stream pipe))
                 (mod (- (tail pipe) (head pipe)) bufsize)
  
positive.code:         "BORDEAUX-THREADS"
          "COM.INFORMATIMAGO.CLEXT.GATE")
    (:export "MAKE-PIPE" "PIPE" "PIPE-INPUT-STREAM" "PIPE-OUTPUT-STREAM" "PIPE-ELEMENT-TYPE"
             "PIPE-CHARACTER-INPUT-STREAM"
             "PIPE-CHARACTER-OUTPUT-STREAM"
             "PIPE-BINARY-INPUT-STREAM"
  
negative.code:       (stream-write-string stream (make-string delta :initial-element #\space))
        delta)))
  
  (defgeneric reopen-pipe (pipe)
    (:documentation "Reopens the streams of the PIPE."))
  (defmethod reopen-pipe ((pipe generic-pipe))
    (with-lock-held ((lock pipe))
      (setf (slot-value (pipe-input-stream pipe)  'open) t
            (slot-value (pipe-output-stream pipe) 'open) t))
    (gate-signal (not-empty pipe)))
  
  (defmethod close-pipe ((pipe generic-pipe))
    (with-lock-held ((lock pipe))
      (setf (slot-value (pipe-output-stream pipe) 'open) nil))
    (gate-signal (not-empty pipe)))
  