sig
  type _ tstring_kind =
      String_kind : string Netstring_tstring.tstring_kind
    | Bytes_kind : Stdlib.Bytes.t Netstring_tstring.tstring_kind
    | Memory_kind : Netsys_types.memory Netstring_tstring.tstring_kind
  type 't tstring_ops = {
    kind : 't Netstring_tstring.tstring_kind option;
    length : 't -> int;
    get : 't -> int -> char;
    unsafe_get : 't -> int -> char;
    unsafe_get3 : 't -> int -> int;
    copy : 't -> 't;
    string : 't -> string;
    bytes : 't -> Stdlib.Bytes.t;
    sub : 't -> int -> int -> 't;
    substring : 't -> int -> int -> string;
    subbytes : 't -> int -> int -> Stdlib.Bytes.t;
    subpoly : 'u. 'u Netstring_tstring.tstring_kind -> 't -> int -> int -> 'u;
    blit_to_bytes : 't -> int -> Stdlib.Bytes.t -> int -> int -> unit;
    blit_to_memory : 't -> int -> Netsys_types.memory -> int -> int -> unit;
    index_from : 't -> int -> char -> int;
    index_from3 : 't -> int -> int -> char -> char -> char -> int;
    rindex_from : 't -> int -> char -> int;
    rindex_from3 : 't -> int -> int -> char -> char -> char -> int;
  }
  type tstring_ops_box =
      Tstring_ops_box : 't Netstring_tstring.tstring_kind *
        't Netstring_tstring.tstring_ops -> Netstring_tstring.tstring_ops_box
  type tstring_box =
      Tstring_box : 't Netstring_tstring.tstring_kind *
        't Netstring_tstring.tstring_ops *
        't -> Netstring_tstring.tstring_box
  type tstring_polybox =
      Tstring_polybox : 't Netstring_tstring.tstring_ops *
        't -> Netstring_tstring.tstring_polybox
  val string_ops : string Netstring_tstring.tstring_ops
  val bytes_ops : Stdlib.Bytes.t Netstring_tstring.tstring_ops
  val memory_ops : Netsys_types.memory Netstring_tstring.tstring_ops
  val ops_of_tstring :
    Netsys_types.tstring -> Netstring_tstring.tstring_ops_box
  type 'a with_fun = {
    with_fun : 's. 's Netstring_tstring.tstring_ops -> 's -> 'a;
  }
  val with_tstring :
    'a Netstring_tstring.with_fun -> Netsys_types.tstring -> 'a
  val length_tstring : Netsys_types.tstring -> int
  val tstring_of_tbuffer : Netsys_types.tbuffer -> Netsys_types.tstring
  val polymorph_string_transformation :
    (string -> string) ->
    's Netstring_tstring.tstring_ops ->
    't Netstring_tstring.tstring_kind -> 's -> 't
  val bytes_subpoly :
    'u Netstring_tstring.tstring_kind -> Stdlib.Bytes.t -> int -> int -> 'u
end