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