anchor.diff:    num_of_big_int(Ratio.denominator_ratio r');;
   
   let numerator = fst o numdom
  -and denominator = snd o numdom;;
  +let 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);;
  +  else abs_num((x */ y) / gcd_num x y);;
   
   (* ------------------------------------------------------------------------- *)
   (* All pairs arising from applying a function over two lists.                *)
  
positive.code: 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;;
  
  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;;
  
  (* ------------------------------------------------------------------------- *)
  (* Version of map that avoids rebuilding unchanged subterms.                 *)
  
negative.code: 
  let subset l1 l2 = forall (fun t -> mem t l2) l1;;
  
  let set_eq l1 l2 = subset l1 l2 && subset l2 l1;;
  
  (* ------------------------------------------------------------------------- *)
  (* Association lists.                                                        *)
  