1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
module type S = sig
type t
val t_of_sexp : Sexp.t -> t
val sexp_of_t : t -> Sexp.t
end
module type S1 = sig
type 'a t
val t_of_sexp : (Sexp.t -> 'a) -> Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexp.t) -> 'a t -> Sexp.t
end
module type S2 = sig
type ('a, 'b) t
val t_of_sexp : (Sexp.t -> 'a) -> (Sexp.t -> 'b) -> Sexp.t -> ('a, 'b) t
val sexp_of_t : ('a -> Sexp.t) -> ('b -> Sexp.t) -> ('a, 'b) t -> Sexp.t
end
module type S3 = sig
type ('a, 'b, 'c) t
val t_of_sexp
: (Sexp.t -> 'a)
-> (Sexp.t -> 'b)
-> (Sexp.t -> 'c)
-> Sexp.t
-> ('a, 'b, 'c) t
val sexp_of_t
: ('a -> Sexp.t)
-> ('b -> Sexp.t)
-> ('c -> Sexp.t)
-> ('a, 'b, 'c) t
-> Sexp.t
end