
template Foo(T, U)
{
class Bar { }

T foo(T t, U u) { }

T abc;

typedef T*  FooType;
typedef Tte**  FooType0;
typedef int* FooType1;
typedef const char FooType2;
}

alias Foo!(int, char) f;
f.Bar b;
f.foo(1,2);
f.abc = 3;

   to!string(10.0);
   TFoo!int.t x;

class Abc(T)
{
   T t;
}

