sig
type t
val negone : Mpa.Q.t
val zero : Mpa.Q.t
val one : Mpa.Q.t
val two : Mpa.Q.t
val is_zero : Mpa.Q.t -> bool
val is_one : Mpa.Q.t -> bool
val is_negone : Mpa.Q.t -> bool
val is_pos : Mpa.Q.t -> bool
val is_neg : Mpa.Q.t -> bool
val is_nonneg : Mpa.Q.t -> bool
val is_nonpos : Mpa.Q.t -> bool
val of_int : int -> Mpa.Q.t
val of_ints : int -> int -> Mpa.Q.t
val min : Mpa.Q.t -> Mpa.Q.t -> Mpa.Q.t
val max : Mpa.Q.t -> Mpa.Q.t -> Mpa.Q.t
val add : Mpa.Q.t -> Mpa.Q.t -> Mpa.Q.t
val sub : Mpa.Q.t -> Mpa.Q.t -> Mpa.Q.t
val minus : Mpa.Q.t -> Mpa.Q.t
val mult : Mpa.Q.t -> Mpa.Q.t -> Mpa.Q.t
val div : Mpa.Q.t -> Mpa.Q.t -> Mpa.Q.t
val inv : Mpa.Q.t -> Mpa.Q.t
val expt : Mpa.Q.t -> int -> Mpa.Q.t
val abs : Mpa.Q.t -> Mpa.Q.t
val floor : Mpa.Q.t -> Mpa.Z.t
val ceil : Mpa.Q.t -> Mpa.Z.t
val frac : Mpa.Q.t -> Mpa.Q.t
val def : Mpa.Q.t -> Mpa.Q.t
val compare : Mpa.Q.t -> Mpa.Q.t -> int
val equal : Mpa.Q.t -> Mpa.Q.t -> bool
val lt : Mpa.Q.t -> Mpa.Q.t -> bool
val le : Mpa.Q.t -> Mpa.Q.t -> bool
val gt : Mpa.Q.t -> Mpa.Q.t -> bool
val ge : Mpa.Q.t -> Mpa.Q.t -> bool
type cmp = Equal | Greater | Less
val cmp : Mpa.Q.t -> Mpa.Q.t -> Mpa.Q.cmp
val denominator : Mpa.Q.t -> Mpa.Z.t
val numerator : Mpa.Q.t -> Mpa.Z.t
val is_integer : Mpa.Q.t -> bool
val to_z : Mpa.Q.t -> Mpa.Z.t
val of_z : Mpa.Z.t -> Mpa.Q.t
val hash : Mpa.Q.t -> int
val to_string : Mpa.Q.t -> string
exception ZeroDivision
val of_string : string -> Mpa.Q.t
val pp : Format.formatter -> Mpa.Q.t -> unit
module Hash :
sig
type key = t
and 'a t
val create : int -> 'a t
val clear : 'a t -> unit
val copy : 'a t -> 'a t
val add : 'a t -> key -> 'a -> unit
val remove : 'a t -> key -> unit
val find : 'a t -> key -> 'a
val find_all : 'a t -> key -> 'a list
val replace : 'a t -> key -> 'a -> unit
val mem : 'a t -> key -> bool
val iter : (key -> 'a -> unit) -> 'a t -> unit
val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
end
end