adamc@821: type t = string adamc@821: adamc@1023: val str : char -> t adamc@1023: 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) adamc@1057: adamc@1057: val all : (char -> bool) -> string -> bool adamc@1131: val mp : (char -> char) -> string -> string adamc@1122: adamc@1122: val newlines : ctx ::: {Unit} -> [[Body] ~ ctx] => string -> xml ([Body] ++ ctx) [] [] adamc@1174: adamc@1174: val isPrefix : {Full : t, Prefix : t} -> bool