"Ranges..." => "Needles..." in [starts|ends]With.
To avoid any confusion: The stuff in ranges may or may not actually be ranges. generic "Needles" is what best describes it.
Clean up endsWith unittests
Original author wrote "wrap" because filter is not bidirectional. However, the function filterBidirectional fits the need, so migrating to that.
Bit of unicode unittest in [starts|ends]With
Just sprinkling some tests. These covered a wee little bit of missing usecases.
Optimizations in startsWith
* Consolidate implementation by checking length in a single spot.
* Checks narrow string or the same types' lengths.
* Index iterates on all RA ranges (and not just Arrays).

Ends with was left untouched, because it forwards to startsWith anyways.
Optimization in startsWith(Range, Needles...)
Basically, makes it stop searching as soon as an element as matched.

This is an important optimization, that avoids a lot of startsWith's other "non-optimzations"...
Implement nextPermutation for bidirectional ranges.
Implement nextEvenPermutation.
Improve ddocs for nextPermutation and nextEvenPermutation.
Improve documentation.
Add unittests for non-default sorting order.
Fix rollover bug in nextEvenPermutation.
Add non-trivial example for nextEvenPermutation.
Oops, fix typo in ddoc.
support for non RA with length in startWith

As suggested by Andrei.

Also: More unittests
Correction of setIntersection's description in the cheat sheet.

setIntersection's description was the same as setDifference's, which 
seemed like an error, I think I fixed it.
Fix Issue 6408 - Phobos fixes

Do not use typeof(Type[0]) to get the element type of an array, use typeof(Type.init[0])
Merge pull request #1077 from yebblies/issue6408

Fix Issue 6408 - Phobos fixes
Issue 9350 - findAdjacent infinite range warning

Fix Issue 9350

http://d.puremagic.com/issues/show_bug.cgi?id=9350
Added unittest for Issue 9350.
Merge pull request #1078 from Poita/bug9350

Issue 9350 - findAdjacent unreachable code warning with infinite ranges