anchor.diff:  
   (DEFUN shen.partial-application? (F Args)
     (LET ((Arity (trap-error (arity F) #'(LAMBDA (E) -1))))
  -    (IF (OR (shen.ABSEQUAL Arity -1)
  -            (shen.ABSEQUAL Arity (length Args))
  +    (IF (OR (shen.absequal Arity -1)
  +            (shen.absequal Arity (length Args))
               (shen-cl.true? (shen.greater? (length Args) Arity)))
         'false
         'true)))
  
positive.code:       (EQ '- (CAR Expr))
        (CONSP (CDR Expr))
        (CONSP (CDDR Expr))
        (shen.ABSEQUAL 1 (CADDR Expr))
        (NULL (CDDDR Expr)))
       (LIST (intern "1-") (shen.optimise-application (CADR Expr))))
  
  
negative.code:       (NUMBERP (CADR Expr)))
       (LIST 'IF (CONS 'NUMBERP (CDDR Expr)) (LIST '= (CADDR Expr) (CADR Expr))))
  
      ; [equal? X Y] -> [(protect shen.absequal) X Y]
      ((AND
        (CONSP Expr)
        (EQ 'shen.equal? (CAR Expr))
        (CONSP (CDR Expr))
        (CONSP (CDDR Expr))
        (NULL (CDDDR Expr)))
       (CONS 'shen.absequal (CDR Expr)))
  
      ; [greater? X Y] -> [> X Y]
      ((AND
  