Signature for a 3-tuple module
include sig ... endval t_of_sexp : (Sexplib.Sexp.t ‑> 'a) ‑> (Sexplib.Sexp.t ‑> 'b) ‑> (Sexplib.Sexp.t ‑> 'c) ‑> Sexplib.Sexp.t ‑> ('a, 'b, 'c) tval sexp_of_t : ('a ‑> Sexplib.Sexp.t) ‑> ('b ‑> Sexplib.Sexp.t) ‑> ('c ‑> Sexplib.Sexp.t) ‑> ('a, 'b, 'c) t ‑> Sexplib.Sexp.tval typerep_of_t : 'a Typerep_lib.Std.Typerep.t ‑> 'b Typerep_lib.Std.Typerep.t ‑> 'c Typerep_lib.Std.Typerep.t ‑> ('a, 'b, 'c) t Typerep_lib.Std.Typerep.tval typename_of_t : 'a Typerep_lib.Std.Typename.t ‑> 'b Typerep_lib.Std.Typename.t ‑> 'c Typerep_lib.Std.Typename.t ‑> ('a, 'b, 'c) t Typerep_lib.Std.Typename.tval create : 'a ‑> 'b ‑> 'c ‑> ('a, 'b, 'c) tval curry : (('a, 'b, 'c) t ‑> 'd) ‑> 'a ‑> 'b ‑> 'c ‑> 'dval uncurry : ('a ‑> 'b ‑> 'c ‑> 'd) ‑> ('a, 'b, 'c) t ‑> 'dval equal : eq1:('a ‑> 'a ‑> Core_kernel__.Import.bool) ‑> eq2:('b ‑> 'b ‑> Core_kernel__.Import.bool) ‑> eq3:('c ‑> 'c ‑> Core_kernel__.Import.bool) ‑> ('a, 'b, 'c) t ‑> ('a, 'b, 'c) t ‑> Core_kernel__.Import.boolval compare : cmp1:('a ‑> 'a ‑> Core_kernel__.Import.int) ‑> cmp2:('b ‑> 'b ‑> Core_kernel__.Import.int) ‑> cmp3:('c ‑> 'c ‑> Core_kernel__.Import.int) ‑> ('a, 'b, 'c) t ‑> ('a, 'b, 'c) t ‑> Core_kernel__.Import.intexternal get1 : ('a, _, _) t ‑> 'a = "%field0" external get2 : (_, 'a, _) t ‑> 'a = "%field1" val get3 : (_, _, 'a) t ‑> 'a