anchor.diff:                    :documentation "Value to use when the field value is nil")
      (placeholder :initarg :placeholder
                   :accessor field-placeholder
  +                :type (or null string)
                   :initform nil
                   :documentation "Field placeholder (text that appears when the field is empty)")
      (help-text :initarg :help-text
                 :initform nil
  +              :type (or null string)
                 :accessor field-help-text
                 :documentation "Field help text")
      (parser :initarg :parser
              :initform nil
              :accessor field-parser
  +           :type (or null symbol function)
              :documentation "Custom field value parser")
      (formatter :initarg :formatter
                 :initform nil
  +              :type (or null symbol function)
                 :accessor field-formatter
                 :documentation "The field formatter")
      (constraints :initarg :constraints
  
positive.code:                         :documentation "Client side validation triggers. A list of :change, :focus, :focusout, :focusin, etc")
     (form :initarg :form
           :initform nil
           :accessor field-form
           :documentation "The form the field belongs to"))
    (:documentation "A form field"))
  
negative.code:   `(call-with-form ,form (lambda () ,@body)))
  
  (defmacro defform (form-name args fields)
    "Define a form at top-level"
    (check-duplicate-fields fields)
    (alexandria:with-gensyms (fargs)
      `(setf (get ',form-name :form)
  