anchor.diff:  ;;;
   ;;; Converting FUNCTION.
   
  -(defclass function-ast (ast)
  -  ((%binding :initarg :binding :reader binding)
  -   (%type :initarg :type :reader type)))
  -
   (defclass close-ast (ast)
     ((%lambda-list :initarg :lambda-list :reader lambda-list)
      (%body :initarg :body :reader body)))
  
positive.code: 	(make-instance 'function-call-ast
  		       :binding binding
  		       :type (find-type binding environment)
  		       :arguments (loop for arg in (cdr form)
  					collect (convert arg environment))))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code:     (error 'progn-special-form-must-be-proper-list
  	   :expr form))
    (make-instance 'progn-ast
  		 :forms (convert-sequence (cdr form) environment)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  