namespace boost {
namespace algorithm {
template<typename ForwardIterator, typename Pred>
ForwardIterator is_sorted_until(ForwardIterator, ForwardIterator, Pred);
template<typename ForwardIterator>
ForwardIterator is_sorted_until(ForwardIterator, ForwardIterator);
template<typename ForwardIterator, typename Pred>
bool is_sorted(ForwardIterator, ForwardIterator, Pred);
template<typename ForwardIterator>
bool is_sorted(ForwardIterator, ForwardIterator);
template<typename R, typename Pred>
boost::lazy_disable_if_c< boost::is_same< R, Pred >::value, typename boost::range_iterator< const R > >::type
is_sorted_until(const R &, Pred);
template<typename R>
boost::range_iterator< const R >::type is_sorted_until(const R &);
template<typename R, typename Pred>
boost::lazy_disable_if_c< boost::is_same< R, Pred >::value, boost::mpl::identity< bool > >::type
is_sorted(const R &, Pred);
template<typename R> bool is_sorted(const R &);
template<typename ForwardIterator>
bool is_increasing(ForwardIterator, ForwardIterator);
template<typename R> bool is_increasing(const R &);
template<typename ForwardIterator>
bool is_decreasing(ForwardIterator, ForwardIterator);
template<typename R> bool is_decreasing(const R &);
template<typename ForwardIterator>
bool is_strictly_increasing(ForwardIterator, ForwardIterator);
template<typename R> bool is_strictly_increasing(const R &);
template<typename ForwardIterator>
bool is_strictly_decreasing(ForwardIterator, ForwardIterator);
template<typename R> bool is_strictly_decreasing(const R &);
}
}