Improved templating of Range<> type - to have secondary member templating for CTOR, and params to a few methds that dont requrie the traits to be the same on lhs/rhs