anchor.diff:      
       (cond ((eq after-type 'start)
   	   (update-type-tower (cons type *type-tower*))
  -	   (my-put 'raise type type->after))
  +	   (my-put 'raise type type->after)
  +	   (my-put 'project after-type after->type))
   	  ((eq before-type 'end)
   	   (update-type-tower (append *type-tower* (list type)))
  -	   (my-put 'raise before-type before->type))
  +	   (my-put 'raise before-type before->type)
  +	   (my-put 'project )
   	  (t 
   	   (update-type-tower (insert *type-tower*))
   	   (my-put 'raise before-type before->type)
  
positive.code: (defun square (x)
    (* x x))
  ;;;;2.1
  
negative.code: (defun update-type-tower (new-tower)
    (setf *type-tower* new-tower))
  
  (defun add-type-to-tower (type before-type after-type
  			  before->type
  			  type->after
  			  after->type
  			  type->before)
    (labels ((insert (lst)
  	     (cond ((null lst) (error "can't find the position -- add-type-to-tower -insert ~A" (list before-type after-type)))
  		   ((and (eq before-type (car lst))
  