Facilities for string manipulation
**********************************

 -- procedure: string? string

 -- procedure: read-only-string? string

 -- procedure: list->string list

 -- procedure: make-string length [char]

 -- procedure: string-length string

 -- procedure: string-ref string [index]

 -- procedure: string-set! string index char

 -- procedure: substring string start [end]

 -- procedure: string-append arg ...

 -- procedure: make-shared-substring string [from] [to]

 -- procedure: string-set! string index char

 -- procedure: string-index string char [from] [to]

 -- procedure: string-rindex string char [from] [to]

 -- procedure: substring-move-left! string1 start1 [end1] [string2] [start2]

 -- procedure: substring-move-right! string1 start1 [end1] [string2] [start2]

 -- procedure: substring-fill! string start [end] [fill]

 -- procedure: string-null? string

 -- procedure: string->list string

 -- procedure: string-copy string

 -- procedure: string-upcase! string

 -- procedure: string-downcase! string