inline bool operator>(sequence_base<Seq1> const& a, sequence_base<Seq2> const& b) { return detail::sequence_greater<Seq1 const, Seq2 const>:: call( fusion::begin(a.cast()) , fusion::begin(b.cast()) ); }
inline bool operator!=(sequence_base<Seq1> const& a, sequence_base<Seq2> const& b) { return detail::sequence_not_equal_to<Seq1 const, Seq2 const>:: call( fusion::begin(a.cast()) , fusion::begin(b.cast()) ); }
inline typename disable_if<traits::is_native_fusion_sequence<Seq1>, bool>::type operator<=(Seq1 const& a, sequence_base<Seq2> const& b) { return less_equal(a, b.derived()); }
inline bool operator<=(sequence_base<Seq1> const& a, sequence_base<Seq2> const& b) { return less_equal(a.derived(), b.derived()); }
inline typename disable_if<detail::is_native_fusion_sequence<Seq2>, bool>::type operator<=(sequence_base<Seq1> const& a, Seq2 const& b) { return less_equal(a.derived(), b); }