range::size works with counted iterables and iterables with .size() member (e.g., std::list), add view::all for fetching a view from something that is either an iterable or container-like