let string_of_rat_inter = function
    Open_inter (a1, a2) -> "(" ^ string_of_rat (a1) ^ ", " ^ string_of_rat (a2) ^ ")"
    (* french version *)
    (* Open_inter (a1, a2) -> " ^ string_of_rat (a1) ^ " ^ string_of_rat (a2) ^ " *)
    |
    Singleton_inter (a) -> "{" ^ string_of_rat (a) ^ "}"