anchor.diff:     (%then :initarg :then :reader then)
      (%else :initarg :else :reader else)))
   
  -(define-condition if-special-form-must-be-proper-list 
  -    (compilation-program-error)
  -  ())
  -
   (define-condition if-must-have-three-or-four-arguments
       (compilation-program-error)
     ())
   
   (defmethod convert-compound
       ((symbol (eql 'if)) form environment)
  -  (unless (sicl-code-utilities:proper-list-p form)
  -    (error 'if-special-form-must-be-proper-list
  -	   :expr form))
  +  (check-special-form-proper-list form)
     (unless (<= 3 (length form) 4)
       (error 'if-must-have-three-or-four-arguments
   	   :expr form))
  
positive.code: ;;;
  ;;; Converting LOCALLY.
  
  (define-condition locally-special-form-must-be-proper-list 
      (compilation-program-error)
    ())
  
  (defmethod convert-compound
      ((symbol (eql 'locally)) form environment)
    (unless (sicl-code-utilities:proper-list-p form)
      (error 'locally-special-form-must-be-proper-list
  	   :expr form))
    (multiple-value-bind (declarations forms)
        (sicl-code-utilities:separate-ordinary-body (cdr form))
      (let* ((declaration-specifiers
  
negative.code: 
  (defmethod convert-compound
      ((symbol (eql 'eval-when)) form environment)
    (check-special-form-proper-list form)
    (unless (>= (length form) 2)
      (error 'eval-when-must-have-at-least-one-argument
  	   :expr form))
  