forall(otype T) struct Box { T x; }; forall(otype T) void ^?{}(Box(T) * x); forall(otype T) void f(T x) { T y = x; Box(T) z = { x }; }