1signature UTF8 =
2sig
3
4  exception BadUTF8 of string
5  datatype safecp = CP of int (* UTF8-encoded code-point *)
6                  | RB of int (* raw byte *)
7  val safecp_to_char : safecp -> string
8  val safe_explode : string -> safecp list
9
10  val getChar : string -> ((string * int) * string) option
11  val firstChar : string -> (string * int) option
12  val lastChar : string -> (string * int) option
13  val size : string -> int
14  val chr : int -> string (* May raise Chr *)
15  val padRight : char -> int -> string -> string
16  val substring : string * int * int -> string
17
18  val translate : (string -> string) -> string -> string
19  val all : (string -> bool) -> string -> bool
20  val explode : string -> string list (* invert with String.concat *)
21  val explodei : string -> int list (* invert with String.concat o map chr *)
22end
23