rename detail::less to detail::less_impl