sig
  type 'name t =
      Unauthorized of string
    | Duplicate of 'name
    | Wrong_mode of 'name
    | Too_many_clients of string
    | Almost_full of int
    | Connect of 'name
    | Disconnect of 'name * Core.Std.Sexp.t
    | Parse_error of 'name * string
    | Protocol_error of string
  val bin_size_t :
    ('-> int) -> 'Versioned_typed_tcp.Server_msg.Control.t -> int
  val bin_write_t_ :
    (Core.Std.Bin_prot.Unsafe_common.sptr ->
     Core.Std.Bin_prot.Unsafe_common.eptr ->
     '-> Bin_prot.Unsafe_common.sptr) ->
    Core.Std.Bin_prot.Unsafe_common.sptr ->
    Core.Std.Bin_prot.Unsafe_common.eptr ->
    'Versioned_typed_tcp.Server_msg.Control.t ->
    Bin_prot.Unsafe_common.sptr
  val bin_write_t :
    (Core.Std.Bin_prot.Unsafe_common.sptr ->
     Core.Std.Bin_prot.Unsafe_common.eptr ->
     '-> Core.Std.Bin_prot.Unsafe_common.sptr) ->
    Core.Std.Bin_prot.Common.buf ->
    pos:Core.Std.Bin_prot.Common.pos ->
    'Versioned_typed_tcp.Server_msg.Control.t ->
    Core.Std.Bin_prot.Common.pos
  val bin_writer_t :
    'Core.Std.Bin_prot.Type_class.writer ->
    'Versioned_typed_tcp.Server_msg.Control.t
    Core.Std.Bin_prot.Type_class.writer
  val bin_read_t__ : '-> '-> '-> '-> 'e
  val bin_read_t_ :
    (Core.Std.Bin_prot.Unsafe_common.sptr_ptr ->
     Core.Std.Bin_prot.Unsafe_common.eptr -> 'a) ->
    Core.Std.Bin_prot.Unsafe_common.sptr_ptr ->
    Core.Std.Bin_prot.Unsafe_common.eptr ->
    'Versioned_typed_tcp.Server_msg.Control.t
  val bin_read_t :
    (Core.Std.Bin_prot.Unsafe_common.sptr_ptr ->
     Core.Std.Bin_prot.Unsafe_common.eptr -> 'name) ->
    Core.Std.Bin_prot.Common.buf ->
    pos_ref:Core.Std.Bin_prot.Common.pos Pervasives.ref ->
    'name Versioned_typed_tcp.Server_msg.Control.t
  val bin_reader_t :
    'Core.Std.Bin_prot.Type_class.reader ->
    'Versioned_typed_tcp.Server_msg.Control.t
    Core.Std.Bin_prot.Type_class.reader
  val bin_t :
    'Core.Std.Bin_prot.Type_class.t ->
    'Versioned_typed_tcp.Server_msg.Control.t
    Core.Std.Bin_prot.Type_class.t
  val t_of_sexp__ : (Sexplib.Sexp.t -> 'name) -> Sexplib.Sexp.t -> 'name t
  val t_of_sexp : (Sexplib.Sexp.t -> 'name) -> Sexplib.Sexp.t -> 'name t
  val sexp_of_t : ('name -> Sexplib.Sexp.t) -> 'name t -> Sexplib.Sexp.t
end