anchor.diff:  	     (cond ((=zero? (coeff term)) term-list)
   		   (t
   		    (cons term term-list))))
  +	   (add-terms (l1 l2)
  +	     (cond ((empty-termlist? l1) l2)
  +		   ((empty-termlist? l2) l1)
  +		   (t 
  +		    (let ((t1 (first-term l1))
  +			  (t2 (first-term l2)))
  +		      (cond ((> (order t1) (order t2))
  +			     (adjoin-term-sparse t1 (add-terms (rest-terms l1) l2)))
  +			    ((< (order t1) (order t2))
  +			     (adjoin-term-sparse t2 (add-terms l1 (rest-terms l2))))
  +			    (t
  +			     (adjoin-term-sparse
  +			      (make-term (order t1)
  +					 (add (coeff t1) (coeff t2)))
  +			      (add-terms (rest-terms l1)
  +					 (rest-terms l2)))))))))
  +	   (the-empty-termlist ()
  +	     (the-sparse-empty-termlist))
  +	   (mul-terms (l1 l2)
  +	     (if (empty-termlist? l1)
  +		 (the-empty-termlist)
  +		 (add-terms (mul-term-by-all-terms (first-term l1) l2)
  +			    (mul-terms (rest-terms l1) l2))))
  +	   (mul-term-by-all-terms (t1 l)
  +	     (if (empty-termlist? l)
  +		 (the-empty-termlist)
  +		 (let ((t2 (first-term l)))
  +		   (adjoin-term-sparse
  +		    (make-term (+ (order t1) (order t2))
  +			       (mul (coeff t1) (coeff t2)))
  +		    (mul-term-by-all-terms t1 (rest-terms l))))))
  +	   (the-empty-termlist () (tag '()))
  +	   (empty-termlist? (term-list)
  +	     (null term-list))
   	   (first-term (term-list) (car term-list))
   	   (rest-terms (term-list) (cdr term-list)))
       (my-put 'adjoin-term 'sparse 
  
positive.code: 
  ;;;;2.90
  
  (defun adjoin-term-sparse (term term-list)
    (funcall (my-get 'adjoin-term 'sparse) term term-list))
  
  (defun first-term (term-list) (apply-generic 'first-term term-list))
  
  
negative.code: ;;;;2.89
  (defun adjoin-term-dense (term term-list)
    (cond ((=zero? (coeff term)) term-list)
  	((equ? (order term) (length term-list)) 
  	 (cons (coeff term) term-list))
  	(t (adjoin-term-dense term (cons 0 term-list)))))
  
  