#ifndef _NTPM_AI_RELOP_H
#define _NTPM_AI_RELOP_H

#include <arithmetic_iterators/ai_binary.h>

namespace NTPMai {


// handles gt comparisong of all promises. returns a generic promise.
template <class T_IT1, class T_IT2>
typename BINOP_Deffer<Promise<T_IT1>,Promise<T_IT2>,
                      greater<Promise<T_IT1>::value_type> >::V
operator>(Promise<T_IT1> p1, Promise<T_IT2> p2)
{
    return make_binary_op_promise(p1, p2,
				  greater<Promise<T_IT1>::value_type>());
}


// handles lt comparison of all promises. returns a generic promise.
template <class T_IT1, class T_IT2>
typename BINOP_Deffer<Promise<T_IT1>,Promise<T_IT2>,
                      less<Promise<T_IT1>::value_type> >::V
operator<(Promise<T_IT1> p1, Promise<T_IT2> p2)
{
    return make_binary_op_promise(p1, p2,
				  less<Promise<T_IT1>::value_type>());
}


}

#endif // _NTPM_AI_RELOP_H
