1signature Rationals =
2sig
3  type int = Arbint.int
4
5  exception Rat_form
6  exception Rat_inv
7  exception Rat_div
8  eqtype rat
9
10  val Rat : (int * int) -> rat
11  val Numerator : rat -> int
12  val Denominator : rat -> int
13  val rat_inv : rat -> rat
14  val rat_plus : rat -> rat -> rat
15  val rat_minus : rat -> rat -> rat
16  val rat_mult : rat -> rat -> rat
17  val rat_div : rat -> rat -> rat
18  val print_rat : rat -> unit
19  val rat_of_int : int -> rat
20  val lower_int_of_rat : rat -> int
21  val upper_int_of_rat : rat -> int
22  val rat_zero : rat
23  val rat_one : rat
24  val rat_less : rat -> rat -> bool
25end
26