`functor (X : T) ->
sig
val ( % ) : X.t -> X.t -> X.t
val ( /% ) : X.t -> X.t -> X.t
val ( // ) : X.t -> X.t -> float
val round :
?dir:[ `Down | `Nearest | `Up | `Zero ] ->
X.t -> to_multiple_of:X.t -> X.t
val round_towards_zero : X.t -> to_multiple_of:X.t -> X.t
val round_down : X.t -> to_multiple_of:X.t -> X.t
val round_up : X.t -> to_multiple_of:X.t -> X.t
val round_nearest : X.t -> to_multiple_of:X.t -> X.t
end`