A.template <class Q> Q F(Q x){return Q+x;}
B.template <class Q> Q F(Q x){return x+x;}
C.template <class T> T F(T x){return x*x;}
D.template <class T> bool F(T x){return x>1;}