sig
  module Consume :
    sig
      type ('a, 'd, 'w) t = ('d, seek) t -> 'a
      val char : (char, 'd, 'w) t
      val int8 : (int, 'd, 'w) t
      val int16_be : (int, 'd, 'w) t
      val int16_le : (int, 'd, 'w) t
      val int32_be : (int, 'd, 'w) t
      val int32_le : (int, 'd, 'w) t
      val uint8 : (int, 'd, 'w) t
      val uint16_be : (int, 'd, 'w) t
      val uint16_le : (int, 'd, 'w) t
      val uint32_be : (int, 'd, 'w) t
      val uint32_le : (int, 'd, 'w) t
      val int64_be : (int, 'd, 'w) t
      val int64_le : (int, 'd, 'w) t
      val int64_t_be : (Int64.t, 'd, 'w) t
      val int64_t_le : (Int64.t, 'd, 'w) t
      val padded_fixed_string : padding:char -> len:int -> (string, 'd, 'w) t
      val string : ?str_pos:int -> ?len:int -> (string, 'd, 'w) t
      val bigstring : ?str_pos:int -> ?len:int -> (Bigstring.t, 'd, 'w) t
    end
  module Fill :
    sig
      type ('a, 'd, 'w) t = (Common.read_write, seek) t -> '-> unit
      val char : (char, 'd, 'w) t
      val int8 : (int, 'd, 'w) t
      val int16_be : (int, 'd, 'w) t
      val int16_le : (int, 'd, 'w) t
      val int32_be : (int, 'd, 'w) t
      val int32_le : (int, 'd, 'w) t
      val uint8 : (int, 'd, 'w) t
      val uint16_be : (int, 'd, 'w) t
      val uint16_le : (int, 'd, 'w) t
      val uint32_be : (int, 'd, 'w) t
      val uint32_le : (int, 'd, 'w) t
      val int64_be : (int, 'd, 'w) t
      val int64_le : (int, 'd, 'w) t
      val int64_t_be : (Int64.t, 'd, 'w) t
      val int64_t_le : (Int64.t, 'd, 'w) t
      val padded_fixed_string : padding:char -> len:int -> (string, 'd, 'w) t
      val string : ?str_pos:int -> ?len:int -> (string, 'd, 'w) t
      val bigstring : ?str_pos:int -> ?len:int -> (Bigstring.t, 'd, 'w) t
    end
  module Peek :
    sig
      type ('a, 'd, 'w) t = ('d, 'w) t -> pos:int -> 'a
      val char : (char, 'd, 'w) t
      val int8 : (int, 'd, 'w) t
      val int16_be : (int, 'd, 'w) t
      val int16_le : (int, 'd, 'w) t
      val int32_be : (int, 'd, 'w) t
      val int32_le : (int, 'd, 'w) t
      val uint8 : (int, 'd, 'w) t
      val uint16_be : (int, 'd, 'w) t
      val uint16_le : (int, 'd, 'w) t
      val uint32_be : (int, 'd, 'w) t
      val uint32_le : (int, 'd, 'w) t
      val int64_be : (int, 'd, 'w) t
      val int64_le : (int, 'd, 'w) t
      val int64_t_be : (Int64.t, 'd, 'w) t
      val int64_t_le : (Int64.t, 'd, 'w) t
      val padded_fixed_string : padding:char -> len:int -> (string, 'd, 'w) t
      val string : ?str_pos:int -> ?len:int -> (string, 'd, 'w) t
      val bigstring : ?str_pos:int -> ?len:int -> (Bigstring.t, 'd, 'w) t
    end
  module Poke :
    sig
      type ('a, 'd, 'w) t =
          (Common.read_write, 'w) t -> pos:int -> '-> unit
      val char : (char, 'd, 'w) t
      val int8 : (int, 'd, 'w) t
      val int16_be : (int, 'd, 'w) t
      val int16_le : (int, 'd, 'w) t
      val int32_be : (int, 'd, 'w) t
      val int32_le : (int, 'd, 'w) t
      val uint8 : (int, 'd, 'w) t
      val uint16_be : (int, 'd, 'w) t
      val uint16_le : (int, 'd, 'w) t
      val uint32_be : (int, 'd, 'w) t
      val uint32_le : (int, 'd, 'w) t
      val int64_be : (int, 'd, 'w) t
      val int64_le : (int, 'd, 'w) t
      val int64_t_be : (Int64.t, 'd, 'w) t
      val int64_t_le : (Int64.t, 'd, 'w) t
      val padded_fixed_string : padding:char -> len:int -> (string, 'd, 'w) t
      val string : ?str_pos:int -> ?len:int -> (string, 'd, 'w) t
      val bigstring : ?str_pos:int -> ?len:int -> (Bigstring.t, 'd, 'w) t
    end
end