anchor.diff:                 (reset-token-iterator)
                  (go start))))))))
   
  -(defparameter *enable-lisp-splice* nil)
  +(defparameter *enable-lisp-splice* nil
  +  "SHCL should permit splicing in lisp forms.
  +
  +Do not set this variable directly.  `main' will set this based on the
  +arguments it receives.")
   (defparameter *debug* nil)
  -(defparameter *help* nil)
  +(defparameter *help* nil
  +  "SHCL should display some basic help information and then exit.
  +
  +Do not set this variable directly.  `main' will set this based on the
  +arguments it receives.")
   
   (defparameter *options*
     '((*enable-lisp-splice* nil "Extend shell language to support splicing lisp expressions")
       (*debug* nil "Run a SWANK server")
  -    (*help* nil "Show list of options")))
  +    (*help* nil "Show list of options"))
  +  "The set of options recognized by `main'.  See `cl-cli:parse-cli'.")
   
   (defmacro with-options ((argv &key (options '*options*)) &body body)
  +  "Parse options and establish dynamic bindings for them.
  +
  +See `cl-cli:parse-cli'."
     (let ((vars (gensym "VARS"))
           (values (gensym "VALUES"))
           (command (gensym "COMMAND"))
  
positive.code:     (funcall (intern "INIT" (find-package "SWANK-LOADER")))))
  
  (defun main ()
    (observe-revival)
    (with-options ((uiop:raw-command-line-arguments))
      (when *help*
  
negative.code: 
  (optimization-settings)
  
  (defparameter *shell-readtable* +standard-shell-readtable+
    "The shell readtable used by the main shell loop.
  
  This only changes how `shcl/shell/main:main' reads shell commands.
  Macros and functions which consume shell expressions are not impacted
  in any way by this variable.")
  
  (defparameter *fresh-prompt* t
    "If non-nil, then the next time the user is prompted for input, the
  standard prompt should be displayed.
  
  When nil, a prompt indicating that the previous line is incomplete
  should be displayed.")
  
  (defun main-prompt ()
    "Return the string which should be displayed as the prompt for the
  next line.
  
  See `*fresh-prompt*'."
    (let ((result (if *fresh-prompt* "shcl> " "> ")))
      (setf *fresh-prompt* nil)
      result))
  
  (defun main-token-iterator (stream form-queue)
    "Return an iterator that produces the tokens found in `stream'.
  
  Tokens are read using `*shell-readtable*', and their bake forms (see
  `shcl/core/baking:bake-tokens') are added to form-queue."
    (lookahead-iterator-wrapper
     (bake-tokens
      (make-iterator ()
  