anchor.diff:         "l" 'forward-char
          "w" 'forward-word
          "$" 'end-line
  -       "<end>" 'end-line
  -       "<space>" 'forward-char
  -       "<backspace>" 'backward-char
  +       "keypadend" 'end-line
  +       "space" 'forward-char
  +       "backspace" 'backward-char
          "0" 'beginning-line
  -       "<home>" 'beginning-line
  +       "keypadhome" 'beginning-line
          "v" 'visual-mode
  -       "<escape>" 'visual-mode
          "C-c" 'visual-mode)))
      (destructor
       (lambda (mode)
         (make-page-uneditable)
         (unlock-page-keypresses)
  -      (setf *mark-set* nil)))
  +      (defparameter *mark-set* nil)))
      (constructor
       (lambda (mode)
         (make-page-editable)
  
positive.code:   (setf (ps:@ document body content-editable) "false"))
  
  (define-command select-paragraph ()
    (query-paragraph-hints "Set caret on element" #'%follow-hint :annotate-visible-only-p t))
  
  (defparameter *mark-set* nil)
  
  (define-parenscript is-collapsed ()
    ;; returns "true" if mark's start and end are the same value
  
negative.code:   "Visual mode."
    ((keymap-scheme
      (define-scheme "visual"
        scheme:cua
        (list
         "up" 'backward-line
         "down" 'forward-line
         "left" 'forward-char
         "right" 'forward-char
         "escape" 'visual-mode)
        scheme:emacs
        (list
         "C-h" 'select-paragraph
  