/* -*- C++ -*- */ template <typename T> class Base {}; template <typename T> struct A : public Base<A<T>> { void f(); }; class F {}; typedef A<F> AF;