template<typename X,
template<typename> class L,
template<typename> class R>
X Func(const L<X>& l,const R<X>& r)