anchor.diff:    ((%x :initarg :x :accessor window-x)
      (%y :initarg :y :accessor window-y)
      (%thread :initarg :thread :accessor window-thread)
  -   (%fifo :initarg :fifo :reader fifo)
  +   (%mailbox :initarg :mailbox :reader mailbox)
      (%buffer :initarg :buffer :reader window-buffer)
      (%layer :initarg :layer :reader layer)
      (%subscribed-notifications :initarg :notifications :reader subscribed-notifications)
  
positive.code:       (push win *m-tab-list*))
      (expand-clip-rectangle-by-window win)))
  
  (defmacro with-window ((window fifo width height &rest options) &body body)
    `(let (,window)
       (unwind-protect
            (progn (setf ,window (mezzano.gui.compositor:make-window ,fifo ,width ,height ,@options))
                   ,@body)
         (when ,window
           (mezzano.gui.compositor:close-window ,window)))))
  
  (defun make-window (fifo width height &key layer initial-z-order kind)
    (let ((window (make-instance 'window
                                 :fifo fifo
                                 :thread (mezzano.supervisor:current-thread)
                                 :buffer (mezzano.gui:make-surface width height)
                                 :layer layer
  
negative.code: 
  (defun send-event (window event)
    "Send an event to a window."
    (cond ((mezzano.sync:mailbox-send event (mailbox window) :wait-p nil)
           (when (window-unresponsive window)
             (expand-clip-rectangle-by-window window)
             (setf (window-unresponsive window) nil)))
  