typedef here[T] = (T^ ptr); /* ERRORS can only use type parameters on functions arguments */ T^ bad1; any^? bad2 = (none as T^?); () f() { typedef B[U] = (U^ x); typedef C[V] = (V^ y, U^ z); // ERROR cannot access U from here }