# Module Gmp.FR

    module FR: sig .. end

    type t

    val zero : t

    val create_prec : prec:int -> unit -> t

    val create : unit -> t

    val default_prec : int Stdlib.ref

    val from_z_prec : prec:int -> mode:Gmp.rounding_mode -> Gmp.Z.t -> t

    val from_q_prec : prec:int -> mode:Gmp.rounding_mode -> Gmp.Z.t -> t

    val from_si_prec : prec:int -> mode:Gmp.rounding_mode -> int -> t

    val from_float_prec : prec:int -> mode:Gmp.rounding_mode -> float -> t

    val float_from : t -> float

    val to_float_mode : mode:Gmp.rounding_mode -> t -> float

    val from_string_prec_base : prec:int -> mode:Gmp.rounding_mode -> base:int -> string -> t

    val to_string_exp_base_digits : mode:Gmp.rounding_mode -> base:int -> digits:int -> t -> string * int

    val add_prec : prec:int -> mode:Gmp.rounding_mode -> t -> t -> t

    val sub_prec : prec:int -> mode:Gmp.rounding_mode -> t -> t -> t

    val mul_prec : prec:int -> mode:Gmp.rounding_mode -> t -> t -> t

    val div_prec : prec:int -> mode:Gmp.rounding_mode -> t -> t -> t

    val add_prec_ui : prec:int -> mode:Gmp.rounding_mode -> t -> int -> t

    val sub_prec_ui : prec:int -> mode:Gmp.rounding_mode -> t -> int -> t

    val mul_prec_ui : prec:int -> mode:Gmp.rounding_mode -> t -> int -> t

    val div_prec_ui : prec:int -> mode:Gmp.rounding_mode -> t -> int -> t

    val neg_prec : prec:int -> mode:Gmp.rounding_mode -> t -> t

    val abs_prec : prec:int -> mode:Gmp.rounding_mode -> t -> t

    val inv_prec : prec:int -> mode:Gmp.rounding_mode -> t -> t

    val reldiff_prec : prec:int -> mode:Gmp.rounding_mode -> t -> t

    val ceil_prec : prec:int -> t -> t

    val floor_prec : prec:int -> t -> t

    val trunc_prec : prec:int -> t -> t

    val cmp : t -> t -> int

    val compare : t -> t -> int

    val sgn : t -> int

    val eq : t -> t -> prec:int -> bool

    val is_nan : t -> bool

    val urandomb : prec:int -> state:Gmp.RNG.randstate_t -> t

    val random : prec:int -> t

    val random2 : prec:int -> nlimbs:int -> max_exp:int -> t

    val from_z : Gmp.Z.t -> t

    val from_q : Gmp.Z.t -> t

    val from_si : int -> t

    val from_int : int -> t

    val from_float : float -> t

    val to_float : t -> float

    val from_string_base : base:int -> string -> t

    val from_string : string -> t

    val add : t -> t -> t

    val sub : t -> t -> t

    val mul : t -> t -> t

    val div : t -> t -> t

    val reldiff : t -> t

    val add_ui : t -> int -> t

    val sub_ui : t -> int -> t

    val mul_ui : t -> int -> t

    val div_ui : t -> int -> t

    val neg : t -> t

    val abs : t -> t

    val inv : t -> t

    val floor : t -> t

    val ceil : t -> t

    val trunc : t -> t

    val equal : t -> t -> bool

    val to_string_base_digits : mode:Gmp.rounding_mode -> base:int -> digits:int -> t -> string

    val to_string : t -> string

    val to_z_exp : t -> Gmp.Z.t * int

    val to_z_t : t -> Gmp.Z.t

    val to_z_c : t -> Gmp.Z.t

    val to_z_f : t -> Gmp.Z.t

    val to_z : t -> Gmp.Z.t

    val z_from : t -> Gmp.Z.t

    val is_available : unit -> bool