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