anchor.diff:  (defpackage :cl-async-repl
     (:use :cl)
     (:nicknames :as-repl)
  -  (:export #:start-async-repl
  +  (:export #:event-thread-running-p
  +           #:start-async-repl
  +           #:ensure-async-repl
              #:stop-async-repl))
   
   (in-package :cl-async-repl)
  
positive.code:   "Wrap ACTION (a function) by establishing ABORT-CALLBACK and EXIT-EVENT-LOOP restarts."
    #'(lambda ()
        (cl-async-util:call-with-callback-restarts
          action 
          :abort-restart-description "Abort the current action.")))
  
  (defun schedule-action (action)
  
negative.code:   (schedule-action #'as:exit-event-loop)
    (values))
  
  (defun start-event-thread (&key exit-callback on-startup)
    "Start event thread. ON-STARTUP is called in the event loop thread
    after it's started. EXIT-CALLBACK is called upon the event loop
    termination."
    (assert (not *event-thread*) () "event thread already started")
    (let ((global-values (mapcar #'symbol-value *globals*))
          (loop-ready-lock (bt:make-lock))
  