anchor.diff: -;;;; these are utilities for working with fns
  +;;;; These are utilities for working with functions.
   
   (in-package :clamp)
   
   (def compose (&rest fns)
  -  "Composes the arguments which are functions"
  +  "Composes functions. For example 
  +
  +   (compose #'1+ #'length) 
  +
  +   will return a function which returns one plus the length of a 
  +   list."
     (if fns
         (with (fn1 (last1 fns)
   	     fns (butlast fns))
  
positive.code:       #'identity))
  
  (def fif (&rest funs)
    "Returns a function which applies each 'test' in sequence
     and if it passes the test calls the next function"
    (case (len funs)
      0 #'identity
      1 (car funs)
  
negative.code: 			     (apply restfun args))))))
  
  (def andf (f &rest fns)
    "Returns a function which lazily applies each function in sequence
     and returns whatever the last function would return if all of the
     other functions return non-nil. For example 
  
     (andf #'integerp #'even #'1+) 
  
     will return a function which increments even integers, and
     returns nil for anything else."
    (if (null fns)
        f
        (let chain (apply #'andf fns)
  