anchor.diff:          (ch :int))
        (,fn-name (extra e) ch)))
   
  -(defun editline-set-add-fn (e name help trampoline-fn)
  +(defun editline-set-addfn (e name help trampoline-sym)
  +  "Add a new function to the `editline' instance.
  +
  +This function can be bound to a key with `editline-set-bind'.  It is
  +an error to bind to the same name twice."
  +  (check-type name string)
  +  (check-type help string)
     (with-slots (command-data ptr) e
       (when (gethash name command-data)
         (error "Function already set for ~A" name))
  
positive.code:   &rest)
  
  (defun el-set-prompt (e prompt-callback)
    (el-set e +el-prompt+ :pointer prompt-callback))
  
  (defun el-set-rprompt (e prompt-callback)
    (el-set e +el-rprompt+ :pointer prompt-callback))
  
  (defun el-set-editor (e mode)
    (el-set e +el-editor+ :string mode))
  
  (defun el-set-add-fn (e name-ptr help-ptr fn)
    (el-set e +el-addfn+ :pointer name-ptr :pointer help-ptr :pointer fn))
  
  (defun el-set-bind (e key command)
    (el-set e +el-bind+ :string key :string command :pointer (null-pointer)))
  
  (defcfun (el-wset "el_wset" :library libedit) :int
  
negative.code:     value))
  
  (defun (setf editline-rprompt) (value e)
    "Change the rprompt string for the given `editline'.
  
  See `editline-rprompt'."
    (with-slots (rprompt) e
      (when rprompt
        (foreign-free rprompt))
  