anchor.diff:  
   (defparameter *unary-ops*  '(-) "Unary operators.")
   (defparameter *binary-ops* '(= + - * /) "Binary operators, sorted by precedence.")
  +(defparameter *op-complements* '((-  +) (/  *)) "Match binary operators to the operators they are a complement of.")
   
   (defun prefix-to-infix (expr)
     "Convert a Lisp arithmetic expression in Polish notation into a list of numbers and operators in infix notation.
  
positive.code: 
  (defun precedes-p (op1 op2 lhs)
    "Return T if an expression of OP2 can be written without parentheses at the LHS/RHS of an expression of OP1."
    )
  
  (defun unary-p (expr)
    "Return T if EXPR is the application of a unary operator."
  
negative.code:                 (mapcar (lambda (lhs-expr)
                            (list '= lhs-expr rhs-expr))
                          ;; remove all but the expressions whose value is the same as rhs-expr
                          (remove (eval rhs-expr) (make-exprs lhs)
                            :test-not #'eql
                            :key #'eval)))
                (make-exprs rhs))))
  