sig
  exception MalFormed
  type byte_order = Little_endian | Big_endian
  val to_int_array :
    Utf16.byte_order option -> string -> int -> int -> int array
  val from_int_array :
    Utf16.byte_order -> int array -> int -> int -> bool -> string
  val stream_from_char_stream :
    Utf16.byte_order option -> char Stream.t -> int Stream.t
  val get_byte_order : char -> char -> Utf16.byte_order
  val from_stream : Utf16.byte_order -> char Stream.t -> int
  val number_of_char_pair : Utf16.byte_order -> char -> char -> int
  val char_pair_of_number : Utf16.byte_order -> int -> char * char
  val next_code : Utf16.byte_order -> string -> int -> int -> int * int
  val compute_len : Utf16.byte_order option -> string -> int -> int -> int
  val blit_to_int :
    Utf16.byte_order option ->
    string -> int -> int array -> int -> int -> unit
  val store : Utf16.byte_order -> Buffer.t -> int -> unit
  val from_utf16_stream :
    char Stream.t -> Utf16.byte_order option -> Ulexing.lexbuf
  val from_utf16_channel :
    Pervasives.in_channel -> Utf16.byte_order option -> Ulexing.lexbuf
  val from_utf16_string : string -> Utf16.byte_order option -> Ulexing.lexbuf
  val utf16_lexeme : Ulexing.lexbuf -> Utf16.byte_order -> bool -> string
  val utf16_sub_lexeme :
    Ulexing.lexbuf -> int -> int -> Utf16.byte_order -> bool -> string
end