sig
  val register : exn -> string -> unit
  val register1 : ('-> exn) -> string -> ('-> Sexp.t) -> unit
  val register2 :
    ('-> '-> exn) -> string -> ('-> Sexp.t) -> ('-> Sexp.t) -> unit
  val register3 :
    ('-> '-> '-> exn) ->
    string -> ('-> Sexp.t) -> ('-> Sexp.t) -> ('-> Sexp.t) -> unit
  val register4 :
    ('-> '-> '-> '-> exn) ->
    string ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) -> ('-> Sexp.t) -> ('-> Sexp.t) -> unit
  val register5 :
    ('-> '-> '-> '-> '-> exn) ->
    string ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) -> ('-> Sexp.t) -> ('-> Sexp.t) -> unit
  val register6 :
    ('-> '-> '-> '-> '-> '-> exn) ->
    string ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) -> ('-> Sexp.t) -> ('-> Sexp.t) -> unit
  val register7 :
    ('-> '-> '-> '-> '-> '-> '-> exn) ->
    string ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) -> ('-> Sexp.t) -> ('-> Sexp.t) -> unit
  val register8 :
    ('-> '-> '-> '-> '-> '-> '-> '-> exn) ->
    string ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) -> ('-> Sexp.t) -> ('-> Sexp.t) -> unit
  val register9 :
    ('-> '-> '-> '-> '-> '-> '-> '-> '-> exn) ->
    string ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) -> ('-> Sexp.t) -> ('-> Sexp.t) -> unit
  val register10 :
    ('-> '-> '-> '-> '-> '-> '-> '-> '-> '-> exn) ->
    string ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) ->
    ('-> Sexp.t) -> ('-> Sexp.t) -> ('-> Sexp.t) -> unit
end