sig
  exception Timeout
  val run :
    timeout:Core.Std.Time.Span.t ->
    f:('a -> 'b) ->
    sexp_of:('b -> Core.Std.Sexp.t) ->
    of_sexp:(Core.Std.Sexp.t -> 'b) -> 'a -> 'b
end