sig
  type t
  val zero : SFTime.t
  val of_seconds : float -> SFTime.t
  val of_milliseconds : int32 -> SFTime.t
  external of_microseconds : int64 -> SFTime.t = "%identity"
  val asSeconds : SFTime.t -> float
  val asMilliseconds : SFTime.t -> int32
  external asMicroseconds : SFTime.t -> int64 = "%identity"
  val add : SFTime.t -> SFTime.t -> SFTime.t
  val sub : SFTime.t -> SFTime.t -> SFTime.t
  val mul : SFTime.t -> float -> SFTime.t
  val div : SFTime.t -> float -> SFTime.t
  val ratio : SFTime.t -> SFTime.t -> float
  val rem : SFTime.t -> SFTime.t -> SFTime.t
  val ( + ) : SFTime.t -> SFTime.t -> SFTime.t
  val ( - ) : SFTime.t -> SFTime.t -> SFTime.t
  val ( * ) : SFTime.t -> float -> SFTime.t
  val ( / ) : SFTime.t -> float -> SFTime.t
  val ( // ) : SFTime.t -> SFTime.t -> float
  val ( mod ) : SFTime.t -> SFTime.t -> SFTime.t
  val compare : SFTime.t -> SFTime.t -> int
  external sleep : SFTime.t -> unit = "caml_sfSleep"
end