Duo (Duo<U1,U2> const & d) : value1(d.v1()), value2(d.v2()) { }
inline bool operator == (Duo<T1,T2> const& d1, Duo<U1,U2> const& d2) { return d1.v1()==d2.v1() && d1.v2()==d2.v2(); }
static typename TypeOp<typename DuoT<N-1, Duo<B,C> >::ResultT>::RefConstT get(Duo<A, Duo<B,C> > const &d) { return DuoValue<N-1, Duo<B,C> >::get(d.v2()); }