anchor.diff:  		f (tail (tail l));
     pairMap = innerPairMap [];
   
  +  
     # "Fold" a binary function `op' between successive elements of
     # `list' with `nul' as the starting value, i.e., `fold op nul [x_1
     # x_2 ... x_n] == op x_1 (op x_2 ... (op x_n nul))'.  (This is
  
positive.code:        else head found;
  
  
    # Return true if each element of a list is equal, false otherwise.
    eqLists = xs: ys:
      if xs == [] && ys == [] then true
      else if xs == [] || ys == [] then false
      else head xs == head ys && eqLists (tail xs) (tail ys);
  
    # Workaround, but works in stable Nix now.
    eqStrings = a: b: (a+(substring 0 0 b)) == ((substring 0 0 a)+b);
  
    # Determine whether a filename ends in the given suffix.
    hasSuffix = ext: fileName:
      let lenFileName = stringLength fileName;
  
negative.code:       (hasSuffix "~" name)
      );
      in src: builtins.filterSource filter src;
  
  
    # Get all files ending with the specified suffices from the given
    # directory.  E.g. `sourceFilesBySuffices ./dir [".xml" ".c"]'.
    sourceFilesBySuffices = path: exts:
      let filter = name: type: 
        let base = baseNameOf (toString name);
        in type != "directory" && any (ext: hasSuffix ext base) exts;
      in builtins.filterSource filter path;
  
  
    # Return a singleton list or an empty list, depending on a boolean
  