or download this
compare leftmost unmerged element in first series
foreach(leftmost unmerged element)
...
It's probably easiest to track how far into S1 and S2 the two buffers
+have gone, and
use B' and B'' as two relative pointers to separate the unmerged parts
+ of S1 and S2 from
from the buffer elements that are migrating in.