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 -> '-> 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 -> '-> unit
      val mem : 'a t -> key -> bool
      val iter : (key -> '-> unit) -> 'a t -> unit
      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
    end
end