anchor.diff:  	    :accessor options)
      (documentation :initarg :documentation
   		  :accessor documentation*))
  -  (:documentation "A configuration section"))
  -
  -(defclass configuration-option ()
  +  (:documentation "A configuration-schema section"))
  +
  +(defclass configuration-schema-option ()
     ((name :initarg :name
   	 :accessor name
   	 :initform (error "Provide a name for the option")
  
positive.code: 		  :initform nil
  		  :accessor documentation*
  		  :documentation "The option documentation string"))
    (:documentation "A configuration option"))
  
  (defvar *option-types* (make-hash-table :test #'equal))
  
  (defmacro define-configuration-option-type (type args &body body)
    `(setf (gethash ',type *option-types*)
  	 (lambda ,args ,@body)))
  
  (defclass configuration-option-type ()
    ())
  
  (defun process-configuration-option-value (option)
    (%process-configuration-option-value (type option) option))
  
  (defmethod %process-configuration-option-value ((type configuration-option-type)
  						option)
    )
  
  (defclass one-of-configuration-option-type (configuration-option-type)
    ((options :initarg :options
  	    :accessor options))
    (:documentation "Choose one of the options"))
  
  (defclass text-configuration-option-type (configuration-option-type)
    ()
    (:documentation "Fill in some text"))
  
  (defclass list-configuration-option-type (configuration-option-type)
    ((options :accessor options))
    (:documentation "Choose a list of options"))
  
  (defclass email-configuration-option-type (configuration-option-type)
    ()
    (:documentation "Fill an email address"))
  
  (defclass url-configuration-option-type (configuration-option-type)
    ()
    (:documentation "Fill in an URL"))
  
  (defclass pathname-configuration-option-type (configuration-option-type)
    ()
    (:documentation "Fill in a pathaname"))
  
  (defclass configuration-option-value ()
    ((option :initarg :option
  	   :documentation "The option referenced")
     (value :initarg :value
  	  :accessor value
  	  :documentation "The option value"))
    (:documentation "The value of a configuration option"))
  
  (defclass configuration-option-type-item ()
    ((name :initarg :name
  	 :accessor name
  	 :initform (error "Provide the type-item name"))
  
negative.code: 					(destructuring-bind (_ name title &rest body)
  					    section
  					  (declare (ignore _))
  					  (make-configuration-schema-section name title body)))
  				      ',sections)))))
  
  (defun make-configuration-schema-section (name title args)
    (let ((documentation (find :documentation args :key #'first))
  	(options (filter (lambda (elem)
  			   (not (equalp (first elem) :documentation)))
  			 args)))
      (make-instance 'configuration-schema-section
  		   :name name
  		   :title title
  		   :documentation documentation
  