anchor.diff:  (defun lem-input-key-thread ()
     (loop :for c := (cl-charms/low-level:wgetch (window-win)) :do
       (unless (= -1 c)
  -      (input-enqueue c))
  +      (bt:with-lock-held (*mainloop-lock*)
  +        (input-enqueue c)))
       (when *exit*
         (return))))
   
  
positive.code: 
  (defun lem-mainloop-thread (debug-p)
    (flet ((body ()
                 (window-maybe-update)
                 (case (catch 'abort
                         (main-step)
                         nil)
  
negative.code: 
  (defvar *input-history* (queue:make-queue 100))
  
  (defvar *mainloop-lock* (bt:make-lock))
  
  (defvar *macro-recording-p* nil)
  (defvar *macro-chars* nil)
  (defvar *macro-running-p* nil)
  