anchor.diff:  Fall back to nil if initform is missing for unsupported types."
     (let ((type (definition-type definition)))
       (if type
  -        (handler-case (basic-type-zero-values type)
  -          (error ()
  -            ;; Fall-back to nil:
  -            nil))
  +        (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)))
   
  
positive.code: (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."
    (let ((type (definition-type definition)))
      (if type
          (handler-case (basic-type-zero-values type)
            (error ()
              ;; 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."
    (let ((type (definition-type definition)))
      (if type
          (handler-case (basic-type-zero-values type)
            (error ()
              ;; Run-time error:
              '(error "Slot must be bound.")))
          ;; Default initform when type is missing:
          nil)))
  
  
negative.code:     (getf definition :type)))
  
  (defun basic-type-zero-values (type)
    "Return TYPE zero value as (ZERO-VALUE BOOLEAN).
  BOOLEAN is non-nil if value was inferred, nil otherwise."
    (let* ((inferred? t)
           (zero-value (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 (setf inferred? nil)
                            nil))))
      (values (and inferred? zero-value) inferred?)))
  
  (defun basic-type-inference (definition)
    "Return general type of VALUE.
  