sig
  module Consume :
    sig
      type src = (Core_kernel.Std.read, seek) Iobuf.t
      module To_string :
        sig
          val blito : (src, string) Iobuf_intf.consuming_blito
          val blit : (src, string) Iobuf_intf.consuming_blit
          val unsafe_blit : (src, string) Iobuf_intf.consuming_blit
          val subo : ?len:int -> src -> string
          val sub : src -> len:int -> string
        end
      module To_bigstring :
        sig
          val blito :
            (src, Core_kernel.Std.Bigstring.t) Iobuf_intf.consuming_blito
          val blit :
            (src, Core_kernel.Std.Bigstring.t) Iobuf_intf.consuming_blit
          val unsafe_blit :
            (src, Core_kernel.Std.Bigstring.t) Iobuf_intf.consuming_blit
          val subo : ?len:int -> src -> Core_kernel.Std.Bigstring.t
          val sub : src -> len:int -> Core_kernel.Std.Bigstring.t
        end
      type ('a, 'b, 's) t = ('b, seek) t -> 'a
        constraint 'b = [> Core_kernel.Std.read ]
      val char : (char, [> Core_kernel.Std.read ], 'w) t
      val int8 : (int, [> Core_kernel.Std.read ], 'w) t
      val int16_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int16_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int32_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int32_le : (int, [> Core_kernel.Std.read ], 'w) t
      val uint8 : (int, [> Core_kernel.Std.read ], 'w) t
      val uint16_be : (int, [> Core_kernel.Std.read ], 'w) t
      val uint16_le : (int, [> Core_kernel.Std.read ], 'w) t
      val uint32_be : (int, [> Core_kernel.Std.read ], 'w) t
      val uint32_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_t_be :
        (Core_kernel.Std.Int64.t, [> Core_kernel.Std.read ], 'w) t
      val int64_t_le :
        (Core_kernel.Std.Int64.t, [> Core_kernel.Std.read ], 'w) t
      val tail_padded_fixed_string :
        padding:char -> len:int -> (string, [> Core_kernel.Std.read ], 'w) t
      val string :
        ?str_pos:int -> ?len:int -> (string, [> Core_kernel.Std.read ], 'w) t
      val bigstring :
        ?str_pos:int ->
        ?len:int ->
        (Core_kernel.Std.Bigstring.t, [> Core_kernel.Std.read ], 'w) t
      val bin_prot :
        'Core_kernel.Std.Bin_prot.Type_class.reader ->
        ('a, [> Core_kernel.Std.read ], 'w) t
      val int64_be_trunc : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_le_trunc : (int, [> Core_kernel.Std.read ], 'w) t
    end
  module Fill :
    sig
      type ('a, 'b, 'w) t =
          (Core_kernel.Std.read_write, seek) t -> '-> unit
        constraint 'b = [> Core_kernel.Std.read ]
      val char : (char, [> Core_kernel.Std.read ], 'w) t
      val int8 : (int, [> Core_kernel.Std.read ], 'w) t
      val int16_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int16_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int32_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int32_le : (int, [> Core_kernel.Std.read ], 'w) t
      val uint8 : (int, [> Core_kernel.Std.read ], 'w) t
      val uint16_be : (int, [> Core_kernel.Std.read ], 'w) t
      val uint16_le : (int, [> Core_kernel.Std.read ], 'w) t
      val uint32_be : (int, [> Core_kernel.Std.read ], 'w) t
      val uint32_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_t_be :
        (Core_kernel.Std.Int64.t, [> Core_kernel.Std.read ], 'w) t
      val int64_t_le :
        (Core_kernel.Std.Int64.t, [> Core_kernel.Std.read ], 'w) t
      val tail_padded_fixed_string :
        padding:char -> len:int -> (string, [> Core_kernel.Std.read ], 'w) t
      val string :
        ?str_pos:int -> ?len:int -> (string, [> Core_kernel.Std.read ], 'w) t
      val bigstring :
        ?str_pos:int ->
        ?len:int ->
        (Core_kernel.Std.Bigstring.t, [> Core_kernel.Std.read ], 'w) t
      val bin_prot :
        'Core_kernel.Std.Bin_prot.Type_class.writer ->
        ('a, [> Core_kernel.Std.read ], 'w) t
      val int64_be_trunc : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_le_trunc : (int, [> Core_kernel.Std.read ], 'w) t
      val decimal : (int, [> Core_kernel.Std.read ], 'a) Iobuf.t
    end
  module Peek :
    sig
      type src = (Core_kernel.Std.read, no_seek) Iobuf.t
      module To_string :
        sig
          val blit : (src, string) Core_kernel.Blit_intf.blit
          val blito : (src, string) Core_kernel.Blit_intf.blito
          val unsafe_blit : (src, string) Core_kernel.Blit_intf.blit
          val sub : (src, string) Core_kernel.Blit_intf.sub
          val subo : (src, string) Core_kernel.Blit_intf.subo
        end
      module To_bigstring :
        sig
          val blit :
            (src, Core_kernel.Std.Bigstring.t) Core_kernel.Blit_intf.blit
          val blito :
            (src, Core_kernel.Std.Bigstring.t) Core_kernel.Blit_intf.blito
          val unsafe_blit :
            (src, Core_kernel.Std.Bigstring.t) Core_kernel.Blit_intf.blit
          val sub :
            (src, Core_kernel.Std.Bigstring.t) Core_kernel.Blit_intf.sub
          val subo :
            (src, Core_kernel.Std.Bigstring.t) Core_kernel.Blit_intf.subo
        end
      type ('a, 'b, 'w) t = ('b, 'w) t -> pos:int -> 'a
        constraint 'b = [> Core_kernel.Std.read ]
      val char : (char, [> Core_kernel.Std.read ], 'w) t
      val int8 : (int, [> Core_kernel.Std.read ], 'w) t
      val int16_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int16_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int32_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int32_le : (int, [> Core_kernel.Std.read ], 'w) t
      val uint8 : (int, [> Core_kernel.Std.read ], 'w) t
      val uint16_be : (int, [> Core_kernel.Std.read ], 'w) t
      val uint16_le : (int, [> Core_kernel.Std.read ], 'w) t
      val uint32_be : (int, [> Core_kernel.Std.read ], 'w) t
      val uint32_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_t_be :
        (Core_kernel.Std.Int64.t, [> Core_kernel.Std.read ], 'w) t
      val int64_t_le :
        (Core_kernel.Std.Int64.t, [> Core_kernel.Std.read ], 'w) t
      val tail_padded_fixed_string :
        padding:char -> len:int -> (string, [> Core_kernel.Std.read ], 'w) t
      val string :
        ?str_pos:int -> ?len:int -> (string, [> Core_kernel.Std.read ], 'w) t
      val bigstring :
        ?str_pos:int ->
        ?len:int ->
        (Core_kernel.Std.Bigstring.t, [> Core_kernel.Std.read ], 'w) t
      val bin_prot :
        'Core_kernel.Std.Bin_prot.Type_class.reader ->
        ('a, [> Core_kernel.Std.read ], 'w) t
      val int64_be_trunc : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_le_trunc : (int, [> Core_kernel.Std.read ], 'w) t
    end
  module Poke :
    sig
      val decimal :
        (Core_kernel.Std.read_write, 'w) Iobuf.t -> pos:int -> int -> int
      type ('a, 'b, 'w) t =
          (Core_kernel.Std.read_write, 'w) t -> pos:int -> '-> unit
        constraint 'b = [> Core_kernel.Std.read ]
      val char : (char, [> Core_kernel.Std.read ], 'w) t
      val int8 : (int, [> Core_kernel.Std.read ], 'w) t
      val int16_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int16_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int32_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int32_le : (int, [> Core_kernel.Std.read ], 'w) t
      val uint8 : (int, [> Core_kernel.Std.read ], 'w) t
      val uint16_be : (int, [> Core_kernel.Std.read ], 'w) t
      val uint16_le : (int, [> Core_kernel.Std.read ], 'w) t
      val uint32_be : (int, [> Core_kernel.Std.read ], 'w) t
      val uint32_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_be : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_le : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_t_be :
        (Core_kernel.Std.Int64.t, [> Core_kernel.Std.read ], 'w) t
      val int64_t_le :
        (Core_kernel.Std.Int64.t, [> Core_kernel.Std.read ], 'w) t
      val tail_padded_fixed_string :
        padding:char -> len:int -> (string, [> Core_kernel.Std.read ], 'w) t
      val string :
        ?str_pos:int -> ?len:int -> (string, [> Core_kernel.Std.read ], 'w) t
      val bigstring :
        ?str_pos:int ->
        ?len:int ->
        (Core_kernel.Std.Bigstring.t, [> Core_kernel.Std.read ], 'w) t
      val bin_prot :
        'Core_kernel.Std.Bin_prot.Type_class.writer ->
        ('a, [> Core_kernel.Std.read ], 'w) t
      val int64_be_trunc : (int, [> Core_kernel.Std.read ], 'w) t
      val int64_le_trunc : (int, [> Core_kernel.Std.read ], 'w) t
    end
end