sig
  type ('name, 'data) t = {
    from : 'name;
    ip : string;
    time_received : Core.Std.Time.t;
    time_sent : Core.Std.Time.t;
    data : 'data;
  }
  val __t_of_sexp__ :
    (Sexplib.Sexp.t -> 'name) ->
    (Sexplib.Sexp.t -> 'data) -> Sexplib.Sexp.t -> ('name, 'data) t
  val t_of_sexp :
    (Sexplib.Sexp.t -> 'name) ->
    (Sexplib.Sexp.t -> 'data) -> Sexplib.Sexp.t -> ('name, 'data) t
  val sexp_of_t :
    ('name -> Sexplib.Sexp.t) ->
    ('data -> Sexplib.Sexp.t) -> ('name, 'data) t -> Sexplib.Sexp.t
  val bin_size_t :
    ('-> int) ->
    ('-> int) -> ('a, 'b) Versioned_typed_tcp.Read_result.t -> int
  val bin_write_t :
    (Bin_prot.Common.buf -> pos:'-> '-> Bin_prot.Common.pos) ->
    (Bin_prot.Common.buf ->
     pos:Core_kernel.Std.Bin_prot.Common.pos -> '-> 'd) ->
    Bin_prot.Common.buf ->
    pos:'-> ('b, 'c) Versioned_typed_tcp.Read_result.t -> 'd
  val bin_writer_t :
    'Core.Std.Bin_prot.Type_class.writer ->
    'Core.Std.Bin_prot.Type_class.writer ->
    ('a, 'b) Versioned_typed_tcp.Read_result.t
    Core.Std.Bin_prot.Type_class.writer
  val __bin_read_t__ :
    '->
    '->
    '-> pos_ref:Core.Std.Bin_prot.Common.pos Pervasives.ref -> '-> 'e
  val bin_read_t :
    (Bin_prot.Common.buf -> pos_ref:Bin_prot.Common.pos_ref -> 'a) ->
    (Bin_prot.Common.buf -> pos_ref:Bin_prot.Common.pos_ref -> 'b) ->
    Bin_prot.Common.buf ->
    pos_ref:Bin_prot.Common.pos_ref ->
    ('a, 'b) Versioned_typed_tcp.Read_result.t
  val bin_reader_t :
    'Core.Std.Bin_prot.Type_class.reader ->
    'Core.Std.Bin_prot.Type_class.reader ->
    ('a, 'b) Versioned_typed_tcp.Read_result.t
    Core.Std.Bin_prot.Type_class.reader
  val bin_t :
    'Core.Std.Bin_prot.Type_class.t ->
    'Core.Std.Bin_prot.Type_class.t ->
    ('a, 'b) Versioned_typed_tcp.Read_result.t Core.Std.Bin_prot.Type_class.t
end