anchor.diff:  (defclass restart-kind (kind)
     ())
   
  +;; (defun register-restart-kind (kind))
  +;; (defun find-restart-kind (name &optional (noerr nil)))
  +;; (defun remove-restart-kind (kind))
  +
  +
   (defsingleton continue-restart-kind (restart-kind)
     ()
     (:default-initargs :name 'continue))
   
  +;; (register-restart-kind 'continue-restart-kind)
   
   (defclass lambda-kind (kind)
     ())
   
  +;; (defun register-lambda-kind (kind))
  +;; (defun find-lambda-kind (name &optional (noerr nil)))
  +;; (defun remove-lambda-kind (kind))
  +
  +
   (defsingleton restart-main-lambda-kind (lambda-kind)
     ()
     (:default-initargs :name :main))
  
positive.code:   ())
  
  (defgeneric app-runtime-init-lambda (application))
  (defgeneric app-runtime-next-lambda (application))
  (defgeneric app-runtime-exit-lambda (application))
  
  ;; NB: These may be approached, alternately, with funcallable instances
  
negative.code: 
  (in-package #:ltp/dobelle/app)
  
  
  
  (eval-when ()
  (define-singleton-enum retart-kind (kind)
    ()
    ((continue-restart-kind continue))
    (:descriptor name))
  ;; ^ subsq defines functions:
  ;; - REGISTER-RESTART-KIND
  ;; - FIND-RESTART-KIND
  ;; - REMOVE-RESTART-KIND
  ;; also defines singleton classes
  ;; - CONTINUE-RESTART-KIND
  
  
  (define-singleton-enum restart-lambda-kind (kind)
    ()
    ((restart-main-lambda-kind :main)
     (restart-interactive-lambda-kind :interactive)
     (restart-report-lambda-kind :report)
     (restart-test-lamba-kind :test))
    (:descriptor name))
  ;; ^ subsq defines functions:
  ;; - REGISTER-RESTART-LAMBDA-KIND
  ;; - FIND-RESTART-LAMBDA-KIND
  ;; - REMOVE-RESTART-LAMBDA-KIND
  ;; also defines singleton classes:
  ;; - RESTART-MAIN-LAMBDA-KIND
  ;; - RESTART-INTERACTIVE-LAMBDA-KIND
  ;; - RESTART-REPORT-LAMBDA-KIND
  ;; - RESTART-TEST-LAMBA-KIND
  
  )
  
  
  ;; --
  
  (defgeneric kind-name (kind))
  (defgeneric (setf kind-name) (new-name kind))
  