module type S = sig .. end
type t
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
module type S1 = sig .. end
type 'a t
val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
module type S2 = sig .. end
type ('a, 'b) t
val t_of_sexp : (Sexplib.Sexp.t -> 'a) ->
(Sexplib.Sexp.t -> 'b) -> Sexplib.Sexp.t -> ('a, 'b) t
val sexp_of_t : ('a -> Sexplib.Sexp.t) ->
('b -> Sexplib.Sexp.t) -> ('a, 'b) t -> Sexplib.Sexp.t
module type S3 = sig .. end
type ('a, 'b, 'c) t
val t_of_sexp : (Sexplib.Sexp.t -> 'a) ->
(Sexplib.Sexp.t -> 'b) ->
(Sexplib.Sexp.t -> 'c) -> Sexplib.Sexp.t -> ('a, 'b, 'c) t
val sexp_of_t : ('a -> Sexplib.Sexp.t) ->
('b -> Sexplib.Sexp.t) ->
('c -> Sexplib.Sexp.t) -> ('a, 'b, 'c) t -> Sexplib.Sexp.t
module Of_sexpable : 
functor (S : S) ->
functor (M : sig .. end) -> S with type t := M.t
module Of_stringable : 
functor (M : Stringable.S) -> S with type t := M.t
module To_stringable : 
functor (M : S) -> Stringable.S with type t := M.t