typedef A = ( int x:x // ERROR ); typedef B = enum ( x:y, // ERROR a:b = 1, // ERROR ); typedef C[T:U] = ( // ERROR T^ x, ); (int g) f1(int i:j); // ERROR (int g:h) f2(int i); // ERROR var A^ a; var B b; () test() { /* ERRORS OPTIONAL types are errornous, so this may or may not trigger additional errors */ a^.x = 123; b = :a; b = B:x; b = :a:b; b = :x; }