anchor.diff:     ys is"
     (w/uniq y
       `(mapcan (fn (it) ; we can use mapcan because map creates new conses
  -		 (map (fn (,y)
  -			  (funcall ,f it ,y))
  -		      ,ys))
  -	     ,xs)))
  +                 (map (fn (,y)
  +                          (funcall ,f it ,y))
  +                      ,ys))
  +             ,xs)))
  
positive.code: (in-package :clamp)
  
  (mac ado (&body body)
  	"Evaluates each expression with it bound to the result of
     the previous one. Returns the value of the last expression"
  	(if (null body)
  			  nil
  			(single body)
  			  (car body)
  			:else
  			  `(let it ,(car body)
  					 (declare (ignorable it))
  					 (ado ,@(cdr body)))))
  
  (mac accum (accfn &body body)
    "The result is all of the arguments passed into accfn"
    (w/uniq gacc
      `(let ,gacc '()
         (flet1 ,accfn (arg) (push arg ,gacc)
  	 ,@body)
         (nrev ,gacc))))
  
  (def multiple (x y)
  
negative.code:   (w/uniq val
      `(let ,val ,x
         (if (funcall ,test ,val)
             ,val
             ,alt))))
  
  (mac zap (op place &rest args)
    "Assigns the value of applying op to the rest of the args
     to the second arg"
    (mvb (vars forms var set access)
         (get-setf-expansion place)
      `(withs (,@(mappend #'list vars forms)
               ,(car var) (funcall ,op ,access ,@args))
         ,set)))
  
  (mac or= (place new)
  