sig
  type t = float
  val packed_descr : Structural_descr.pack
  val hash : t -> int
  val pretty : Format.formatter -> t -> unit
  val is_exact : Float_sig.prec -> bool
  val of_float : Float_sig.round -> Float_sig.prec -> float -> t
  val to_float : t -> float
  val cmp_ieee : t -> t -> int
  val compare : t -> t -> int
  val is_nan : t -> bool
  val is_finite : t -> bool
  val is_infinite : t -> bool
  val is_negative : t -> bool
  val round_to_precision : Float_sig.round -> Float_sig.prec -> t -> t
  val next_float : Float_sig.prec -> t -> t
  val prev_float : Float_sig.prec -> t -> t
  module Widen_Hints : Float_sig.Widen_Hints
  type widen_hints = Widen_Hints.t
  val widen_up : widen_hints -> Float_sig.prec -> t -> t
  val widen_down : widen_hints -> Float_sig.prec -> t -> t
  val neg : t -> t
  val abs : t -> t
  val floor : t -> t
  val ceil : t -> t
  val trunc : t -> t
  val fround : t -> t
  val add : Float_sig.round -> Float_sig.prec -> t -> t -> t
  val sub : Float_sig.round -> Float_sig.prec -> t -> t -> t
  val mul : Float_sig.round -> Float_sig.prec -> t -> t -> t
  val div : Float_sig.round -> Float_sig.prec -> t -> t -> t
  val fmod : Float_sig.round -> Float_sig.prec -> t -> t -> t
  val exp : Float_sig.round -> Float_sig.prec -> t -> t
  val log : Float_sig.round -> Float_sig.prec -> t -> t
  val log10 : Float_sig.round -> Float_sig.prec -> t -> t
  val sqrt : Float_sig.round -> Float_sig.prec -> t -> t
  val pow : Float_sig.round -> Float_sig.prec -> t -> t -> t
  val cos : Float_sig.round -> Float_sig.prec -> t -> t
  val sin : Float_sig.round -> Float_sig.prec -> t -> t
  val atan2 : Float_sig.round -> Float_sig.prec -> t -> t -> t
end