anchor.diff:  				(equalp (first elem) :title))
   			      args)))
   	(documentation (first (find :documentation args :key #'first))))
  -    `(make-instance 'configuration
  +    `(setf (gethash ',name *configuration-schemas*)
  +	   (make-instance 'configuration-schema
   		    :name ',name
   		    :parents (list ,@parents)
   		    :title ,(second title)
  
positive.code: 		result))
  	  list :initial-value nil))
  
  (defmacro define-configuration (name parents &rest args)
    (let ((sections (filter (lambda (elem)
  			    (equalp (first elem) :section))
  			  args))
  
negative.code: 		  :accessor configuration
  		  :documentation "How to configure this item-type")))
  
  (define-configuration-schema-option-type :one-of (&rest options)
    (make-instance
     'one-of-configuration-schema-option-type
     :options (list (mapcar
  		   (lambda (option)
  		     (destructuring-bind (name title &rest args)
  			 option
  		       (apply #'make-configuration-schema-type-item
  			      name (cons title args))))
  		   options))))
  
  (define-configuration-schema-option-type :some-of (options &rest args)
    (apply #'make-instance 'list-configuration-schema-option-type
  	 (append
  	  (list
  	   :options (list (mapcar #'make-configuration-schema-type-item options)))
  	 args)))
  
  (define-configuration-schema-option-type :text (&rest args)
    (apply #'make-instance 'text-configuration-schema-option-type
  	 args))
  
  (define-configuration-schema-option-type :url (&rest args)
    (apply #'make-instance 'url-configuration-schema-option-type
  	 args))
  
  (define-configuration-schema-option-type :email (&rest args)
    (apply #'make-instance 'email-configuration-schema-option-type
  	 args))
  
  (defmacro path-name (&rest args)
    `(make-instance 'pathname-configuration-schema-option-type
  		  ,@args))
  
  (defun make-configuration-schema-type-item (name title &rest args)
    (apply #'make-instance 'configuration-schema-option-type-item
  		 (append (list :name name
  			       :title title)
  			 args)))
  
  (defmethod %validate-configuration-schema-option ((type text-configuration-schema-option-type)
  					  option)
    (if (not (stringp (value option)))
        (validation-error option
  			(format nil "~A should be a string for ~A" option type))))
  
  (defmethod initialize-instance :after ((option configuration-schema-option-value) &rest initargs)
    (declare (ignore initargs))
    (validate-configuration-schema-option option))
  
  (defun filter (predicate list)
    (reduce (lambda (result elem)
  