      proc))
 
 ;; I can't believe I have to write this function
-(defun filter (pred lst)
+(defun mural-filter (pred lst)
   (if (eq 0 (length lst))
       '()
     (let ((fst (car lst))
-          (rst (filter pred (cdr lst))))
+          (rst (mural-filter pred (cdr lst))))
       (if (funcall pred fst)
         (cons fst rst)
         rst))))

  (setq mural-tagfile-to-process
        (cons
         (cons tagfile process)
         (filter (lambda (entry)
                   (not (equal tagfile (car entry))))
                 mural-tagfile-to-process))))


directory, so /home/bob/project/foo.c will match the tag file in
/home/bobo/project/TAGS.  If no match is found, return nil"
  (let ((resolved-fname (file-truename filename)))
    (car (mural-filter
          (lambda (tagfile)
            ;; file-truename resolves symlinks so we make sure to
            ;; compare the same thing
