anchor.diff:      ;;       corresponding :REPORT function, generally illustrative of
       ;;       such application.
       :initform nil
  -    :type (or symbol cons)
  +    :type eval-context-name
       :initarg :context
       :reader macroexpansion-condition-context)))
  +
  +
  +(declaim (ftype (function (eval-context-name eval-context-name)
  +                          (values list &optional))
  +                 eval-context-add-suffix))
  +
  +(defun eval-context-add-suffix (suffix whence)
  +  ;; utility for forms that may dispatch to generally signal a
  +  ;; MACROEXPANSION-CONDITION - add SUFFIX to WHENCE, in a manner
  +  ;; dependent on the syntax of each value
  +
  +  ;; NB Could style-warning when (NULL SUFFIX)
  +
  +  (etypecase whence
  +    (cons
  +     (etypecase suffix
  +       (symbol
  +        (append whence (list suffix)))
  +       (cons
  +        (append whence suffix))
  +       (null
  +        (values whence))))
  +    (null
  +     (etypecase suffix
  +       (symbol
  +        (list suffix))
  +       (cons
  +        (values suffix))
  +       (null
  +        (values nil))))
  +    (symbol
  +     (etypecase suffix
  +       (symbol
  +        (list whence suffix))
  +       (cons
  +        (append (list whence) suffix))
  +       (null
  +        (list whence))))))
   
   
   (define-condition lambda-parser-condition (macroexpansion-condition)
  
positive.code:       (t
         (values forms nil)))))
  
  (defun parse-lambda-call-params (llist &optional error-context)
    ;; NB: This function's return value is used together with
    ;; the return value from PARSE-DECLARED-TYPES, for computing
    ;; an FTYPE declaration in UNPARSE-NAMED-FTYPE
    ;;
    ;; This function, as such, provides a value for the
    ;; LPARMS parameter to UNPARSE-NAMED-FTYPE
    ;;
    ;; Usage - Within UNPARSE-NAMED-FTYPE, this function's return
    ;; value is processed within an iterative form, such that
    ;; will compute a type for each lambda parameter parsed
    ;; out by PARSE-LAMBDA-CALL-PARAMS. For any parameter not
    ;; given an explicit type in any declaration forms,
    ;; UNPARSE-NAMED-FTYPE will provide a resonable default type -
    ;; similarly, for the VALUES element in the resulting
    ;; FTYPE declaration.
    ;;
  
negative.code:                  parse-lambda-call-params))
  
  
  (defun walk-forms-declarations (forms callback)
    ;; assumption: any docstring has been removed from FORMS
    ;;
  