anchor.diff:  In particular, this should understand Punycode."))
   
   (define-ffi-generic ffi-buffer-cookie-policy (buffer)
  +  (:setter-p t)
     (:documentation "Return the cookie 'accept' policy, one of of`:always',
   `:never' or `:no-third-party'.
   
   Setf-able with the same aforementioned values."))
   
   (define-ffi-generic ffi-preferred-languages (buffer)
  +  (:setter-p t)
     (:documentation "Set the list of preferred languages in the HTTP header \"Accept-Language:\".
   Setf-able, where the languages value is a list of strings like '(\"en_US\"
   \"fr_FR\")."))
  
positive.code:   (:documentation "Unbind the pannel BUFFER widget from WINDOW."))
  
  (define-ffi-generic ffi-window-panel-buffer-width (window buffer)
    (:documentation "Return the panel BUFFER width as a number.
  Setf-able."))
  (define-ffi-generic ffi-window-prompt-buffer-height (window)
    (:documentation "Return the WINDOW prompt buffer height as a number.
  Setf-able."))
  (define-ffi-generic ffi-window-status-buffer-height (window)
    (:documentation "Return the WINDOW status buffer height as a number.
  Setf-able."))
  (define-ffi-generic ffi-window-message-buffer-height (window)
    (:documentation "Return the WINDOW message buffer height as a number.
  Setf-able."))
  
  
negative.code:   "Like `defgeneric' but export NAME and define default dummy method if none is
  provided."
    (let* ((methods (sera:filter (sera:eqs :method) options :key #'first))
           (setter? (alex:assoc-value options :setter-p))
           (normalized-options (set-difference options methods :key #'first))
           (normalized-options (setf (alex:assoc-value normalized-options :setter-p) nil)))
      `(progn
         (export-always ',name)
         (prog1
             (defgeneric ,name (,@arguments)
               ,@(if methods
                     methods
                     `((:method (,@arguments)
                         (declare (ignore ,@(set-difference arguments lambda-list-keywords))))))
               ,@normalized-options)
           ,(when setter?
              `(defmethod (setf ,name) (value ,@arguments)
                 (declare (ignore value ,@arguments))))))))
  
  (define-ffi-generic ffi-window-delete (window)
    (:documentation "Delete WINDOW, possibly freeing the associated widgets.
  