typedef A[T] = (T^ x); typedef B[T,U] = (T^ x, U^ y); typedef C[T] = T^; typedef D[T] = T^#[2]; int i = 1; bool b = :false; (int x) val_x = (1,); (int x)^ ptr_x = @val_x; (int^ x) val_a = (@i,); (int^ x)^ ptr_a = @val_a; A[int]^ a1 = @(@i,); A[int]^ a2 = @val_a; A[int]^ a3 = ptr_a; A[int]^ a4 = a3; (int^ x)^ a5 = a4; B[bool,int] b1 = (@b, @i); B[bool,int] b2 = b1; C[int] c1 = @10; D[int] d1 = [@12,@34]; typedef incomplete X[T] = T; X[int] xx = 10; () test() { A[int]^ x = ptr_a; A[int] var^ fa1 = a2; fa1 = a3; any^ axp1 = a3^.x; int^ axp2 = a3^.x; int axv = a3^.x^; int testd = d1#[0]^; }