anchor.diff:  let rec assocd a l d =
     match l with
       [] -> d
  -  | (x,y)::t -> if Pervasives.compare x a = 0 then y else assocd a t d;;
  +  | (x,y)::t -> if compare x a = 0 then y else assocd a t d;;
   
   let rec rev_assocd a l d =
     match l with
       [] -> d
  -  | (x,y)::t -> if Pervasives.compare y a = 0 then x else rev_assocd a t d;;
  +  | (x,y)::t -> if compare y a = 0 then x else rev_assocd a t d;;
   
   (* ------------------------------------------------------------------------- *)
   (* Version of map that avoids rebuilding unchanged subterms.                 *)
  
positive.code:   num_of_big_int(Ratio.denominator_ratio r');;
  
  let numerator = fst o numdom
  and denominator = snd o numdom;;
  
  let gcd_num n1 n2 =
    num_of_big_int(Big_int.gcd_big_int (big_int_of_num n1) (big_int_of_num n2));;
  
  let lcm_num x y =
    if x =/ num_0 & y =/ num_0 then num_0
    else abs_num((x */ y) // gcd_num x y);;
  
  (* ------------------------------------------------------------------------- *)
  (* All pairs arising from applying a function over two lists.                *)
  
negative.code: (* Common measure predicates to use with "sort".                             *)
  (* ------------------------------------------------------------------------- *)
  
  let increasing f x y = compare (f x) (f y) < 0;;
  
  let decreasing f x y = compare (f x) (f y) > 0;;
  
  (* ------------------------------------------------------------------------- *)
  (* Polymorphic finite partial functions via Patricia trees.                  *)
  