sig
  module Unpack_one :
    sig
      type ('value, 'partial_unpack) t =
          ?partial_unpack:'partial_unpack ->
          ?pos:int ->
          ?len:int ->
          Bigstring.t ->
          [ `Invalid_data of Error.t
          | `Not_enough_data of 'partial_unpack * int
          | `Ok of 'value * int ]
      val map :
        ('a, 'partial_unpack) t -> f:('-> 'b) -> ('b, 'partial_unpack) t
      val create_bin_prot : 'Bin_prot.Type_class.reader -> ('a, unit) t
    end
  type ('value, 'partial_unpack) t =
      ('value, 'partial_unpack) Unpack_buffer.t
  val invariant : ('a, 'b) t -> unit
  val create :
    ?partial_unpack:'partial_unpack ->
    ('value, 'partial_unpack) Unpack_one.t -> ('value, 'partial_unpack) t
  val create_bin_prot : 'Bin_prot.Type_class.reader -> ('a, unit) t
  val is_empty : ('a, 'b) t -> bool Or_error.t
  val feed :
    ?pos:int -> ?len:int -> ('a, 'b) t -> Bigstring.t -> unit Or_error.t
  val feed_string :
    ?pos:int -> ?len:int -> ('a, 'b) t -> string -> unit Or_error.t
  val unpack : ('value, 'a) t -> 'value Std_internal.Queue.t Or_error.t
  val debug : bool ref
  val sexp_of_t :
    ('value -> Sexplib.Sexp.t) ->
    ('partial_unpack -> Sexplib.Sexp.t) ->
    ('value, 'partial_unpack) t -> Sexplib.Sexp.t
end