sig
  type t
  val of_seconds : amount:float -> SFTime.t
  val of_milliseconds : amount:int32 -> SFTime.t
  val of_microseconds : amount:int64 -> SFTime.t
  val asSeconds : SFTime.t -> float
  val asMilliseconds : SFTime.t -> int32
  val asMicroseconds : SFTime.t -> int64
  val add : SFTime.t -> SFTime.t -> SFTime.t
  val sub : SFTime.t -> SFTime.t -> SFTime.t
  val mul : float -> SFTime.t -> SFTime.t
  val mult : SFTime.t -> float -> SFTime.t
  val div : SFTime.t -> float -> SFTime.t
  val sleep : duration:SFTime.t -> unit
  val sleep_sec : duration:float -> unit
  val sleep_msec : duration:int32 -> unit
  val sleep_musec : duration:int64 -> unit
end