anchor.diff:  (defun type-zero-initform-inference (definition)
     "Infer basic type zero values.
   See `basic-type-zero-values'.
  -Raise a condition at macro-expansion time when initform is missing for unsupported types."
  +Raise a condition at macro-expansion time when initform is missing for
  +unsupported types."
     (let ((type (definition-type definition)))
       (if type
  -        (handler-case (basic-type-zero-values type)
  -          (error ()
  -            ;; Compile-time error:
  -            (error "Missing initform.")))
  +        (multiple-value-bind (value found?)
  +            (basic-type-zero-values type)
  +          (if found?
  +              value
  +              ;; Compile-time error:
  +              (error "Missing initform.")))
           ;; Default initform when type is missing:
           nil)))
   
   (defun no-unbound-initform-inference (definition)
     "Infer basic type zero values.
  -Raise a condition when instantiating if initform is missing for unsupported types."
  +Raise a condition when instantiating if initform is missing for unsupported
  +types."
     (let ((type (definition-type definition)))
       (if type
  -        (handler-case (basic-type-zero-values type)
  -          (error ()
  -            ;; Run-time error:
  -            '(error "Slot must be bound.")))
  +        (multiple-value-bind (value found?)
  +            (basic-type-zero-values type)
  +          (if found?
  +              value
  +              ;; Run-time error:
  +              '(error "Slot must be bound.")))
           ;; Default initform when type is missing:
           nil)))
   
  
positive.code:     (getf definition :type)))
  
  (defun basic-type-zero-values (type)
    "Return TYPE zero value.
  An error is raised if the type is unsupported."
    (cond
      ((subtypep type 'string) "")
      ((subtypep type 'boolean) nil)
      ((subtypep type 'list) '())
      ((subtypep type 'array) (make-array 0))
      ((subtypep type 'hash-table) (make-hash-table))
      ;; Order matters for numbers:
      ((subtypep type 'float) 0.0)
      ((subtypep type 'number) 0)         ; Includes complex numbers and rationals.
      (t (error "Unknown type"))))
  
  (defun basic-type-inference (definition)
    "Return general type of VALUE.
  
negative.code: Fall back to nil if initform is missing for unsupported types."
    (let ((type (definition-type definition)))
      (if type
          (multiple-value-bind (value found?)
              (basic-type-zero-values type)
            (if found?
                value
                ;; Fall-back to nil:
                nil))
          ;; Default initform when type is missing:
          nil)))
  
  