sig
  type ('a, 'b, 'c) sexpable
  val sexp_of_t :
    ('-> Sexplib.Sexp.t) ->
    ('-> Sexplib.Sexp.t) ->
    ('-> Sexplib.Sexp.t) ->
    ('a, 'b, 'c) Sexpable.S3.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.S3.sexpable
end