typedef ta[T] = ( T^ value, ); typedef nested[T] = ( ta inner, // ERROR missing type paramter ); var int i; var int var^ ip; var float f; var float var^ fp; var byte by; var byte var^ byp; var bool bo; var bool var^ bop; () test_bad_param_list() { /* ERRORS missing type paramters */ ta t; ta^ u; /* ERRORS wrong number of type paramters */ ta[] v; ta[int,int,int] w; } () test_non_parametric() { int[] t; // ERROR int[bool] u; // ERROR (int aa, int bb) v; } () test_nested() { var nested[int] t; /* ERRORS */ ip = t.inner.value; t.inner.value = ip; t.inner.value = @i; }