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 "The function to use to write to underlying model")
     (trim :initarg :trim-p
           :initform t
           :accessor field-trim-p
           :documentation "Trim the input")
     (validation-triggers :initarg :validation-triggers
  
negative.code:           :documentation "The form model object")
     (csrf-protection :initarg :csrf-protection
                      :initform nil
                      :type boolean
                      :accessor form-csrf-protection-p
                      :documentation "T when csrf protection is enabled")
     (csrf-field-name :initarg :csrf-field-name
                      :initform "_token"
                      :type (or null string)
                      :accessor form-csrf-field-name
                      :documentation "csrf field name")
     (errors :initform nil
             :accessor form-errors
             :type list
             :documentation "Form errors after validation")
     (display-errors :initarg :display-errors
                     :initform (list :list :inline)
                     :type list
                     :accessor display-errors
                     :documentation "A list containing the places where to display errors. Valid options are :list and :inline")
     (client-validation :initarg :client-validation
                        :initform t
                        :type boolean
                        :accessor client-validation
                        :documentation "When T, form client validation is enabled"))
    (:documentation "A form"))
  