Param ->
  sig
    type t = Mpfr.fr
    val zero : Mpfr.FR.Make.t
    val one : Mpfr.FR.Make.t
    val minus_one : Mpfr.FR.Make.t
    external compare : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> int
      = "mlmpfr_fr_compare"
    external compare_int : Mpfr.FR.Make.t -> int -> int
      = "mlmpfr_fr_compare_int"
    val neg : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val abs : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val add : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val add_int : Mpfr.FR.Make.t -> int -> Mpfr.FR.Make.t
    val sub : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val sub_int : Mpfr.FR.Make.t -> int -> Mpfr.FR.Make.t
    val mul : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val mul_int : Mpfr.FR.Make.t -> int -> Mpfr.FR.Make.t
    val div : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val fma :
      Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val pow_int : base:Mpfr.FR.Make.t -> exponent:int -> Mpfr.FR.Make.t
    val int_pow_int : base:int -> exponent:int -> Mpfr.FR.Make.t
    val scale : Mpfr.FR.Make.t -> base:int -> exponent:int -> Mpfr.FR.Make.t
    val root : nth:int -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val sqrt : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    external nearly_equal : int -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> bool
      = "mlmpfr_fr_nearly_equal"
    val frexp : Mpfr.FR.Make.t -> Mpfr.FR.Make.t * int
    val ldexp : Mpfr.FR.Make.t -> int -> Mpfr.FR.Make.t
    val trunc : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val ceil : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val floor : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    external is_infinite : Mpfr.FR.Make.t -> bool = "mlmpfr_fr_is_infinite"
    val pi : Mpfr.FR.Make.t
    val log : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val based_log : base:int -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val pow : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val exp : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val sin : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val cos : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val tan : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val atan : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val atan2 : Mpfr.FR.Make.t -> Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val acosh : Mpfr.FR.Make.t -> Mpfr.FR.Make.t
    val of_based_string : base:int -> string -> Mpfr.FR.Make.t
    val of_string : string -> Mpfr.FR.Make.t
    val to_based_string : base:int -> Mpfr.FR.Make.t -> string
    val to_string : Mpfr.FR.Make.t -> string
    val of_int : int -> Mpfr.FR.Make.t
    val of_float : float -> Mpfr.FR.Make.t
    val to_float : Mpfr.FR.Make.t -> float
    val of_z : Gmp.z -> Mpfr.FR.Make.t
    val to_z : Mpfr.FR.Make.t -> Gmp.z
  end