anchor.diff:  		 (mul-terms (rest-terms l1) l2))))
   
   (defun mul-term-by-all-terms (t1 l)
  +  ;(format t "~%the l is~A~%" l)
     (if (empty-termlist? l)
         (the-empty-termlist)
         (let ((t2 (first-term l)))
  +	;(format t "~%the t1-o t2-o t1-c t2-c is~A~%" (list (order t1)
  +	;						   (order t2)
  +	;						   (coeff t1)
  +	;						   (coeff t2)))
   	(adjoin-term
   	 (make-term (+ (order t1) (order t2))
   		    (mul (coeff t1) (coeff t2)))
  
positive.code: 
  (defun the-empty-termlist () (the-sparse-empty-termlist))
              
  
  (let ((spar (the-sparse-empty-termlist))
        (dens (the-dense-empty-termlist))
  
negative.code: 		 (make-poly (variable p1)
  			    (div-terms (term-list p1)
  				       (term-list p2)))
  		 (error "the p1 p2 not same var ~A" (list p1 p2))))
  
  	   (gcd-poly (p1 p2)
  	     (if (same-variable? (variable p1) (variable p2))
  		 (make-poly (variable p1)
  			    (gcd-terms (term-list p1)
  				       (term-list p2)))
  		 (error "the p1 p2 not same var ~A" (list p1 p2))))
  	   (reduce-poly (p1 p2)
  	     (format t "~% t1 t2 is ~A" (list (term-list p1)
  					      (term-list p2)))
  	     (if (same-variable? (variable p1) (variable p2))
  		 (make-poly (variable p1)
  			    (reduce-terms (term-list p1)
  					  (term-list p2)))
  		 (error "the p1 p2 not same var ~A" (list p1 p2))))
  	   
  	   (tag (p) (attach-tag 'polynomial p)))
  
  