Merge position iterator optimization.
A little slower, as there are some extra unnecessary copies. Also perhaps the horrible workaround for stacking macros.