changed everything to pass position around rather than rest-of-list. This makes everything go from 8.5 to 0.25 seconds. Uncomment the regex version to see the previous time-taken (it was the fastest of the bunch). The code gen in sequence2 is a really bad idea.