sig
  type t
  val pp_print_decimal : Format.formatter -> Decimal.t -> unit
  val pp_print_decimal_as_float : Format.formatter -> Decimal.t -> unit
  val pp_print_decimal_as_lus_real : Format.formatter -> Decimal.t -> unit
  val pp_print_decimal_sexpr : Format.formatter -> Decimal.t -> unit
  val string_of_decimal : Decimal.t -> string
  val string_of_decimal_sexpr : Decimal.t -> string
  val of_int : int -> Decimal.t
  val of_big_int : Big_int.big_int -> Decimal.t
  val of_num : Num.num -> Decimal.t
  val of_string : string -> Decimal.t
  val to_int : Decimal.t -> int
  val to_big_int : Decimal.t -> Big_int.big_int
  val is_int : Decimal.t -> bool
  val zero : Decimal.t
  val one : Decimal.t
  val succ : Decimal.t -> Decimal.t
  val pred : Decimal.t -> Decimal.t
  val abs : Decimal.t -> Decimal.t
  val neg : Decimal.t -> Decimal.t
  val add : Decimal.t -> Decimal.t -> Decimal.t
  val sub : Decimal.t -> Decimal.t -> Decimal.t
  val mult : Decimal.t -> Decimal.t -> Decimal.t
  val div : Decimal.t -> Decimal.t -> Decimal.t
  val rem : Decimal.t -> Decimal.t -> Decimal.t
  val ( ~- ) : Decimal.t -> Decimal.t
  val ( + ) : Decimal.t -> Decimal.t -> Decimal.t
  val ( - ) : Decimal.t -> Decimal.t -> Decimal.t
  val ( * ) : Decimal.t -> Decimal.t -> Decimal.t
  val ( / ) : Decimal.t -> Decimal.t -> Decimal.t
  val ( mod ) : Decimal.t -> Decimal.t -> Decimal.t
  val equal : Decimal.t -> Decimal.t -> bool
  val compare : Decimal.t -> Decimal.t -> int
  val leq : Decimal.t -> Decimal.t -> bool
  val lt : Decimal.t -> Decimal.t -> bool
  val geq : Decimal.t -> Decimal.t -> bool
  val gt : Decimal.t -> Decimal.t -> bool
  val ( = ) : Decimal.t -> Decimal.t -> bool
  val ( <> ) : Decimal.t -> Decimal.t -> bool
  val ( <= ) : Decimal.t -> Decimal.t -> bool
  val ( < ) : Decimal.t -> Decimal.t -> bool
  val ( >= ) : Decimal.t -> Decimal.t -> bool
  val ( > ) : Decimal.t -> Decimal.t -> bool
end