anchor.diff:  	 (funcall ,thunk)
   	 (let ((*within-main-nesting* t)
   	       (,promise (lparallel:promise)))
  -	   (gtk:within-main-loop
  +	   (gtk:within-gtk-thread
   	     (lparallel:fulfill ,promise
   	       (funcall ,thunk)))
   	   (lparallel:force ,promise))))))
   
   (defun initialize ())
   
  +(defvar *window* NIL)
  +
   (defun start ()
  +  (gtk:ensure-gtk-main)
     (synchronous-within-main
      (let* ((window
              (make-instance 'gtk:gtk-window
  
positive.code:       window "destroy"
        (lambda (widget)
          (declare (ignore widget))
          (gtk:leave-gtk-main)))
       (gobject:g-signal-connect
        window "key_press_event"
  
negative.code:         (declare (ignore widget))
          (process-set-completions (minibuffer-view *next-interface*))))
       (gtk:gtk-widget-show-all window)
       (setf *window* window)
       (minibuffer-hide))))
  
  (defun kill ()
    (gtk:gtk-widget-destroy *window*))
  
  (defun copy ())
  (defun paste ())
  