sig
  module type EndianStringSig =
    sig
      val get_char : string -> int -> char
      val get_uint8 : string -> int -> int
      val get_int8 : string -> int -> int
      val get_uint16 : string -> int -> int
      val get_int16 : string -> int -> int
      val get_int32 : string -> int -> int32
      val get_int64 : string -> int -> int64
      val set_char : string -> int -> char -> unit
      val set_int8 : string -> int -> int -> unit
      val set_int16 : string -> int -> int -> unit
      val set_int32 : string -> int -> int32 -> unit
      val set_int64 : string -> int -> int64 -> unit
    end
  module BigEndian :
    sig
      val get_char : string -> int -> char
      val get_uint8 : string -> int -> int
      val get_int8 : string -> int -> int
      val get_uint16 : string -> int -> int
      val get_int16 : string -> int -> int
      val get_int32 : string -> int -> int32
      val get_int64 : string -> int -> int64
      val set_char : string -> int -> char -> unit
      val set_int8 : string -> int -> int -> unit
      val set_int16 : string -> int -> int -> unit
      val set_int32 : string -> int -> int32 -> unit
      val set_int64 : string -> int -> int64 -> unit
    end
  module BigEndian_unsafe :
    sig
      val get_char : string -> int -> char
      val get_uint8 : string -> int -> int
      val get_int8 : string -> int -> int
      val get_uint16 : string -> int -> int
      val get_int16 : string -> int -> int
      val get_int32 : string -> int -> int32
      val get_int64 : string -> int -> int64
      val set_char : string -> int -> char -> unit
      val set_int8 : string -> int -> int -> unit
      val set_int16 : string -> int -> int -> unit
      val set_int32 : string -> int -> int32 -> unit
      val set_int64 : string -> int -> int64 -> unit
    end
  module LittleEndian :
    sig
      val get_char : string -> int -> char
      val get_uint8 : string -> int -> int
      val get_int8 : string -> int -> int
      val get_uint16 : string -> int -> int
      val get_int16 : string -> int -> int
      val get_int32 : string -> int -> int32
      val get_int64 : string -> int -> int64
      val set_char : string -> int -> char -> unit
      val set_int8 : string -> int -> int -> unit
      val set_int16 : string -> int -> int -> unit
      val set_int32 : string -> int -> int32 -> unit
      val set_int64 : string -> int -> int64 -> unit
    end
  module LittleEndian_unsafe :
    sig
      val get_char : string -> int -> char
      val get_uint8 : string -> int -> int
      val get_int8 : string -> int -> int
      val get_uint16 : string -> int -> int
      val get_int16 : string -> int -> int
      val get_int32 : string -> int -> int32
      val get_int64 : string -> int -> int64
      val set_char : string -> int -> char -> unit
      val set_int8 : string -> int -> int -> unit
      val set_int16 : string -> int -> int -> unit
      val set_int32 : string -> int -> int32 -> unit
      val set_int64 : string -> int -> int64 -> unit
    end
end