In *-index, *-take-while, *-take-while-right, *-drop-while, *-drop-while-right, *-span and *-break procedures, some takes the predicate first followed by object(s) to be examined, and the other takes the object first then followed by the predicate.
So far, only strings and alike adopt the latter. I don't think we can change them now, but it'll be helpful to keep them well separated in this way for the future libraries (that is, only string-specific libraries use the latter).
## "Predicate first" group:
(scheme list)
list-index pred list1 list2 ...
take-while pred list
drop-while pred list
span pred list
break pred list
(scheme vector)
vector-index pred vec1 vec2 ...
(scheme ideque)
ideque-take-while pred ideque
ideque-take-while-right pred ideque
ideque-drop-while pred ideque
ideque-drop-while-right pred ideque
ideque-span pred ideque
ideque-break pred ideque
(scheme lseq)
lseq-index pred lseq
lseq-take-while pred lseq
lseq-drop-while pred lseq
(scheme stream)
stream-take-while pred strm
stream-drop-while pred strm
## "Object first" group:
(srfi 13)
string-index string pred+ [start end] ; pred+ = pred / char / char-set
(srfi 130)
string-index string pred [start end]
(srfi 135)
textual-index textual pred [start end]
(srfi 140)
string-index string pred [start end]
(srfi 152)
string-index string pred [start end]
string-take-while string pred [start end]
string-take-while-right string pred [start end]
string-drop-while string pred [start end]
string-drop-while-right string pred [start end]
string-span string pred [start end]
string-break string pred [start end]