anchor.diff:  (* ------------------------------------------------------------------------- *)
   
   /// Read file and convert content into a list of strings.
  +// OPTIMIZE : Use a StreamReader here instead of the OCaml-compatibility stuff.
   let strings_of_file filename = 
       let fd = 
  -        try 
  +        try
               Pervasives.open_in filename
           with
  -        | Sys_error _ -> failwith("strings_of_file: can't open " + filename)
  +        | Sys_error _ ->
  +            failwith("strings_of_file: can't open " + filename)
       let rec suck_lines acc = 
           try 
               let l = Pervasives.input_line fd
  
positive.code:      data)
  
  /// Read file and convert content into a string.
  let string_of_file filename = end_itlist (fun s t -> s + "\n" + t) (strings_of_file filename)
  
  /// Write out a string to a named file.
  let file_of_string filename s = 
      let fd = Pervasives.open_out filename
      output_string fd s
  
negative.code:         System.Numerics.BigInteger.GreatestCommonDivisor(a,b) 
  
      let big_int_of_ratio r =
          let numerator, denominator = numdom r
          if denominator = num_of_big_int System.Numerics.BigInteger.One then
              match numerator with
              | Int i -> bigint i
              | Big_int i -> i
              | Ratio _ ->
                  failwith "big_int_of_ratio"
          else failwith "big_int_of_ratio"
  
  module Num =
      let big_int_of_num (n : num) : bigint =
          match n with
          | Int i ->
  