sig
val failwithf : ('a, unit, string, unit -> 'b) format4 -> 'a
module type S =
sig
type sexpable
val sexp_of_t : sexpable -> Sexplib.Sexp.t
val t_of_sexp : Sexplib.Sexp.t -> sexpable
end
module type S1 =
sig
type 'a sexpable
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a sexpable -> Sexplib.Sexp.t
val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a sexpable
end
module type S2 =
sig
type ('a, 'b) sexpable
val sexp_of_t :
('a -> Sexplib.Sexp.t) ->
('b -> Sexplib.Sexp.t) -> ('a, 'b) sexpable -> Sexplib.Sexp.t
val t_of_sexp :
(Sexplib.Sexp.t -> 'a) ->
(Sexplib.Sexp.t -> 'b) -> Sexplib.Sexp.t -> ('a, 'b) sexpable
end
module type S3 =
sig
type ('a, 'b, 'c) sexpable
val sexp_of_t :
('a -> Sexplib.Sexp.t) ->
('b -> Sexplib.Sexp.t) ->
('c -> Sexplib.Sexp.t) -> ('a, 'b, 'c) sexpable -> Sexplib.Sexp.t
val t_of_sexp :
(Sexplib.Sexp.t -> 'a) ->
(Sexplib.Sexp.t -> 'b) ->
(Sexplib.Sexp.t -> 'c) -> Sexplib.Sexp.t -> ('a, 'b, 'c) sexpable
end
module Of_stringable :
functor (M : Stringable.S) ->
sig
type sexpable = M.stringable
val sexp_of_t : sexpable -> Sexplib.Sexp.t
val t_of_sexp : Sexplib.Sexp.t -> sexpable
end
module To_stringable :
functor (M : S) ->
sig
type stringable = M.sexpable
val of_string : string -> stringable
val to_string : stringable -> string
end
end