anchor.diff:        (no (cdr args))
           (car args)
         'else
  -        `(lets it ,(car args) (and it (aand ,@(cdr args))))))
  +        `(let1 it ,(car args) (and it (aand ,@(cdr args))))))
   
   (def memo (f)
     "Returns a memoized version of the function f"
  -  (lets cache (table :test #'iso)
  +  (let1 cache (table :test #'iso)
       (fn (&rest args)
         (or (gethash args cache)
   	  (setf (gethash args cache)
  
positive.code: 
  (mac awhen (expr &body body)
     "Analog of alf but for when"
    `(lets it ,expr (lf it (progn ,@body)))) ; change name of progn
  
  (mac aand (&rest args)
    "Evaluates each argument one by one. Binds the result of the previous
  
negative.code:       `(with ,(mappend (fn (n) `(,n (uniq (symbol-name ',n))))
  		       names)
  	 ,@body)
        `(let1 ,names (uniq (symbol-name ',names)) ,@body))) ; want to add better way to convert from symbol
  
  (mac lflet (var expr &body branches)
    "Same as lf but if a predicate is true, it is bound to var"
    (lf branches
        (w/uniq gv
  	`(let1 ,gv ,expr
  	   (lf ,gv
  	       (let1 ,var ,gv
  		 ,(car branches))
  	       ,(lf (cdr branches)
  		    `(lflet ,var ,@(cdr branches))))))
  