adamc@821: type t = string adamc@821: adamc@828: val length : t -> int adamc@828: adamc@828: val append : t -> t -> t adamc@828: adamc@821: val sub : t -> int -> char adamc@821: val suffix : t -> int -> string adamc@829: adamc@829: val index : t -> char -> option int adamc@829: val atFirst : t -> char -> option string adamc@829: adamc@831: val mindex : {Haystack : t, Needle : t} -> option int adamc@831: adamc@829: val substring : t -> {Start : int, Len : int} -> string adamc@829: adamc@829: val split : t -> char -> option (string * string) adamc@831: val msplit : {Haystack : t, Needle : t} -> option (string * char * string)