Add noexcept declarations for fairly trivial functions.
Reintroduce StepOverCounted, with the aim of dispatching to it in the case of ranges where the minimum length of input/output is determinable in constant time (i.e. counted range and bounded range of random access iterators).
Move step into algo_range.h . Re-namespace the tags and such into the algo::detail namespace.
Create macro ALGO_DETAIL_CALL that resolves down to ALGO_CALL::detail .
Update all uses of the algo namespace to use the macros provided in algo_basics.h.
Create ALGO_LOGIC_CALL::is_same and redirect all usage of std::is_same onto that instead.