anchor.diff:  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;; Look for single clause ifs
   
  -(define (analyze-for-single-clause-ifs expressions)
  -  )
  +(define (lint:analyze-for-single-clause-ifs expressions)
  +
  +  (define (crawl-looking-for-if expression report)
  +    (cond ((nil? expression) report)
  +          ((atom? expression) report)
  +          ((list? expression)
  +           (if (eq? (car expression) 'if)
  +               (crawl-looking-for-do (cddr expression)
  +                                      (analyze-do-bindings (cadr expression) report))
  +               (list report
  +                     (crawl-looking-for-do (car expression) '())
  +                     (crawl-looking-for-do (cdr expression) '()))))
  +          (else report)))
  +  
  +  (remove nil? (flatten* (map (lambda (ex)
  +                                (crawl-looking-for-if ex '()))
  +                              expressions))))
   
   ;;; File processing
   
  
positive.code:       expressions))
    
    (let ((expressions (load-file filename)))
      (map (lambda (f) (f expressions))
           (list analyze-for-set
                 analyze-for-bugged-let
                 analyze-for-bugged-do
                 analyze-for-single-clause-ifs))))
  
negative.code: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;; Look for mutator use
  
  (define (lint:analyze-for-set expressions)
  
    (define (crawl-looking-for-set expression report)
      (cond ((nil? expression) report)
            ((atom? expression) report)
            ((list? expression)
             (if (memq (car expression) '(set! set-car! set-cdr!))
                 (cons (format #f "Mutator found: ~A" expression) report)
                 (list (crawl-looking-for-set (car expression) report)
                       (crawl-looking-for-set (cdr expression) report))))
            (else report)))
  