another cut at range_adaptor
Merge branch 'master' into algorithms-reboot