sig
  type t
  val approx : Creal.t -> int -> Gmp.Z.t
  val msd : Creal.t -> int
  val add : Creal.t -> Creal.t -> Creal.t
  val neg : Creal.t -> Creal.t
  val sub : Creal.t -> Creal.t -> Creal.t
  val abs : Creal.t -> Creal.t
  val mul : Creal.t -> Creal.t -> Creal.t
  val inv : Creal.t -> Creal.t
  val div : Creal.t -> Creal.t -> Creal.t
  val pow_int : Creal.t -> int -> Creal.t
  val root : int -> Creal.t -> Creal.t
  val sqrt : Creal.t -> Creal.t
  val ln : Creal.t -> Creal.t
  val log : base:Creal.t -> Creal.t -> Creal.t
  val exp : Creal.t -> Creal.t
  val pow : Creal.t -> Creal.t -> Creal.t
  val sin : Creal.t -> Creal.t
  val cos : Creal.t -> Creal.t
  val tan : Creal.t -> Creal.t
  val arcsin : Creal.t -> Creal.t
  val arccos : Creal.t -> Creal.t
  val arctan : Creal.t -> Creal.t
  val arctan_reciproqual : int -> Creal.t
  val sinh : Creal.t -> Creal.t
  val cosh : Creal.t -> Creal.t
  val tanh : Creal.t -> Creal.t
  val arcsinh : Creal.t -> Creal.t
  val arccosh : Creal.t -> Creal.t
  val arctanh : Creal.t -> Creal.t
  val zero : Creal.t
  val one : Creal.t
  val two : Creal.t
  val pi : Creal.t
  val half_pi : Creal.t
  val e : Creal.t
  val cmp : Creal.t -> Creal.t -> int
  val rel_cmp : int -> Creal.t -> Creal.t -> int
  val min : Creal.t -> Creal.t -> Creal.t
  val max : Creal.t -> Creal.t -> Creal.t
  val of_int : int -> Creal.t
  val of_z : Gmp.Z.t -> Creal.t
  val of_q : Gmp.Q.t -> Creal.t
  val of_float : float -> Creal.t
  val of_string : ?radix:int -> string -> Creal.t
  val to_float : Creal.t -> int -> float
  val to_q : Creal.t -> int -> Gmp.Q.t
  val to_string : Creal.t -> int -> string
  val to_beautiful_string : Creal.t -> int -> string
  val print : Format.formatter -> Creal.t -> unit
  val set_print_precision : int -> unit
  module Infixes :
    sig
      val ( +! ) : Creal.t -> Creal.t -> Creal.t
      val ( -! ) : Creal.t -> Creal.t -> Creal.t
      val ( *! ) : Creal.t -> Creal.t -> Creal.t
      val ( /! ) : Creal.t -> Creal.t -> Creal.t
    end
end