anchor.diff: -;;;; cl-forms.lisp
  -
   (in-package #:cl-forms)
   
   (defvar *form-renderer* nil)
  
positive.code: 
  (defun render-field (field &optional (form *form*) &rest args)
    (let ((field (if (symbolp field)
  		   (get-field form field)
  		   field)))
      (apply #'renderer-render-field *form-renderer* *form-theme* field form args)))
  
  (defun render-field-label (field &optional (form *form*) &rest args)
    (let ((field (if (symbolp field)
  		   (get-field form field)
  		   field)))
      (apply #'renderer-render-field-label *form-renderer* *form-theme* field form args)))
  
  (defun render-field-errors (field &optional (form *form*) &rest args)
    (let ((field (if (symbolp field)
  		   (get-field form field)
  		   field)))
      (apply #'renderer-render-field-errors *form-renderer* *form-theme* field form args)))
  
  (defun render-field-widget (field &optional (form *form*) &rest args)
    (let ((field (if (symbolp field)
  		   (get-field form field)
  		   field)))
      (apply #'renderer-render-field-widget *form-renderer* *form-theme* field form args)))
  
  (defgeneric renderer-render-form (renderer theme form &rest args))
  
negative.code: (defgeneric renderer-render-form-end (renderer theme form))
  (defgeneric renderer-render-field (renderer theme field form &rest args))
  (defgeneric renderer-render-field-label (renderer theme field form &rest args))
  
  (defmethod renderer-render-field-label (renderer theme (field submit-form-field) form &rest args)
    ;; Don't render the label of submit buttons
    )
  
  (defgeneric renderer-render-field-errors (renderer theme field form &rest args))
  (defgeneric renderer-render-field-widget (renderer theme field form &rest argss))
  
  