Partial MR to consider some changes of !158
Hans proposed a series of improvements in !158 (closed) which may have been lost due to not-merging. Here is a partial MR to consider most of his ideas. The remaining good idea is to change ProcessSequence to directly use std::tuple.