bool equal(const IteratorAdaptor1& x, const IteratorAdaptor2& y) const { return x.policies().order_it_ == y.policies().order_it_; }
bool equal(const IteratorAdaptor1& x, const IteratorAdaptor2& y) const { return x.base() == y.base() && x.policies().m_value == y.policies().m_value; }
typename IteratorAdaptor1::difference_type distance(const IteratorAdaptor1& x, const IteratorAdaptor2& y) const { return std::distance( x.policies().order_it_, y.policies().order_it_ ); }