sig   type t = float   type fpclass =     Pervasives.fpclass =       FP_normal     | FP_subnormal     | FP_zero     | FP_infinite     | FP_nan   val nan : CCFloat.t   val max_value : CCFloat.t   val min_value : CCFloat.t   val max_finite_value : CCFloat.t   val epsilon : CCFloat.t   val is_nan : CCFloat.t -> bool   val add : CCFloat.t -> CCFloat.t -> CCFloat.t   val sub : CCFloat.t -> CCFloat.t -> CCFloat.t   val neg : CCFloat.t -> CCFloat.t   val abs : CCFloat.t -> CCFloat.t   val scale : CCFloat.t -> CCFloat.t -> CCFloat.t   val min : CCFloat.t -> CCFloat.t -> CCFloat.t   val max : CCFloat.t -> CCFloat.t -> CCFloat.t   val equal : CCFloat.t -> CCFloat.t -> bool   val compare : CCFloat.t -> CCFloat.t -> int   type 'a printer = Format.formatter -> '-> unit   type 'a random_gen = Random.State.t -> 'a   val pp : CCFloat.t CCFloat.printer   val hash : CCFloat.t -> int   val random : CCFloat.t -> CCFloat.t CCFloat.random_gen   val random_small : CCFloat.t CCFloat.random_gen   val random_range : CCFloat.t -> CCFloat.t -> CCFloat.t CCFloat.random_gen   val fsign : CCFloat.t -> CCFloat.t   val round : CCFloat.t -> CCFloat.t   exception TrapNaN of string   val sign_exn : CCFloat.t -> int   val to_int : CCFloat.t -> int   val of_int : int -> CCFloat.t   val to_string : CCFloat.t -> string   val of_string : string -> CCFloat.t   val equal_precision : epsilon:CCFloat.t -> CCFloat.t -> CCFloat.t -> bool   val classify : CCFloat.t -> CCFloat.fpclass   module Infix :     sig       val ( = ) : CCFloat.t -> CCFloat.t -> bool       val ( <> ) : CCFloat.t -> CCFloat.t -> bool       val ( < ) : CCFloat.t -> CCFloat.t -> bool       val ( > ) : CCFloat.t -> CCFloat.t -> bool       val ( <= ) : CCFloat.t -> CCFloat.t -> bool       val ( >= ) : CCFloat.t -> CCFloat.t -> bool     end   val ( = ) : t -> t -> bool   val ( <> ) : t -> t -> bool   val ( < ) : t -> t -> bool   val ( > ) : t -> t -> bool   val ( <= ) : t -> t -> bool   val ( >= ) : t -> t -> bool end