anchor.diff:          with
           | Failure _ -> rest
   
  -/// Returns the first element of a list which satis-es a predicate.
  -// OPTIMIZE : Make this an alias for List.find.
  +/// Returns the first element of a list which satisfies a predicate.
  +// OPTIMIZE : Make this an alias for List.tryFind.
   let rec find p l = 
       match l with
       | [] -> failwith "find"
  
positive.code:         else find p t
  
  /// Returns the result of the first successful application of a function to the elements of a list.
  // OPTIMIZE : Make this an alias for List.tryFind.
  let rec tryfind f l =
      List.tryPick f l
  
  
negative.code: (* ------------------------------------------------------------------------- *)
  
  /// Merges together two sorted lists with respect to a given ordering.
  // OPTIMIZE : Make this tail-recursive (just use an accumulator and call List.rev at the end).
  let rec merge ord l1 l2 = 
      match l1 with
      | [] -> l2
  