anchor.diff:  ;;;;; tré – Copyright (c) 2006–2007,2009–2013 Sven Michael Klose <pixel@copei.de>
  +
  +
  +;;;; FUNCTION NAME
  +
  +(defun funinfo-get-name (fi)
  +  (| (funinfo-name fi)
  +     (funinfo-get-name (funinfo-parent fi))))
   
   ;;;; ARGUMENTS
   
  
positive.code: (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)))
  
  (defun funinfo-var? (fi x)
    (& x (atom x)
  
negative.code:   (unless (funinfo-var? fi x)
      (funinfo-var-add fi x)))
  
  
  ;;;; LEXICAL CONTEXT
  
  (defun funinfo-lexical-pos (fi x)
    (position x (funinfo-lexicals fi) :test #'eq))
  
  (defun funinfosym-lexical-pos (fi-sym x)
    (funinfo-lexical-pos (get-funinfo-by-sym fi-sym) x))
  
  (defun funinfo-lexical? (fi x)
    (member x (funinfo-lexicals fi) :test #'eq))
  
  
  ;;;; USED VARIABLES
  
  (defun funinfo-used-var? (fi x)
    (member x (funinfo-used-vars fi) :test #'eq))
  
  