* The SwapStrategy.semistable branch does not call save for result, therefore this breaks with forward ranges
* The SwapStrategy.unstable !isDynamicArray branch does not call save for result, therefore this breaks with forward ranges
* The SwapStrategy.unstable !isDynamicArray branch requires a bidirectional range, only forward range primitives are tested for
* is(typeof(swap(result.front, r.front))) is never tested for
A lot of this stems from the fact that arrays are the only means of testing for this function
Comment #1 by github-bugzilla — 2016-09-30T15:43:23Z