After this pr, for a string with just 20 length and 6 `'\t'`, the time reduces by about 1.5%[^t].
Also, the code is clearer than the previous at some places.
[^t]: Generally speaking, this rate increases with length. I may test
for longer string later.
This was done because partition is an uncommonly used proc that is still
useful in rare cases. There is also a desire to add more procs to this
module at a later time.