anchor.diff:  (defun funinfo-arg-pos (fi x)
     (position x (funinfo-args fi) :test #'eq))
   
  -;;;; FREE VARIABLES
  -
  -(defun funinfo-free-var? (fi var)
  -  (member var (funinfo-free-vars fi) :test #'eq))
  -
  -(defun funinfo-add-free-var (fi var)
  -  (adjoin! var (funinfo-free-vars fi) :test #'eq)
  -  var)
  -
  -;;;; ARGUMENTS & ENVIRONMENT
  -
   (defun funinfo-local-args (fi)
     (remove-if [funinfo-lexical? fi _] (funinfo-args fi)))
  +
  +
  +;;;; ARGUMENTS & VARIABLES
   
   (defun funinfo-var? (fi x)
     (& x (atom x)
  
positive.code: ;;;;; tré – Copyright (c) 2006–2007,2009–2013 Sven Michael Klose <pixel@copei.de>
  
  ;;;; ARGUMENTS
  
  
negative.code:   (| (funinfo-arg? fi x)
       (funinfo-var? fi x)))
  
  (defun funinfo-var-or-lexical? (fi x)
    (!? (funinfo-parent fi)
        (| (funinfo-arg-or-var? fi x)
           (funinfo-var-or-lexical? ! x))))
  
  
  ;;;; ENVIRONMENT
  
  (defun funinfo-parent-var? (fi x)
    (!? (funinfo-parent fi)
        (| (funinfo-arg-or-var? ! x)
           (funinfo-parent-var? ! x))))
  
  (defun funinfo-var-pos (fi x)
    (& (funinfo-parent fi)
       (position x (funinfo-vars fi) :test #'eq)))
  
  (defun funinfosym-var-pos (fi-sym x)
    (funinfo-var-pos (get-funinfo-by-sym fi-sym) x))
  
  (defun funinfo-var-add (fi x)
    (unless (atom x)
  