sig
val gcd : int -> int -> int
type t = { num : int; den : int; }
val make : int -> int -> Rational.t
val inv : Rational.t -> Rational.t
val neg : Rational.t -> Rational.t
val add : Rational.t -> Rational.t -> Rational.t
val sub : Rational.t -> Rational.t -> Rational.t
val mul : Rational.t -> Rational.t -> Rational.t
val div : Rational.t -> Rational.t -> Rational.t
val to_string : Rational.t -> string
val print : Format.formatter -> Rational.t -> unit
end