On Wednesday, 22 March 2023 at 11:00:40 UTC, zjh wrote: ```d alias Vec3(S) = Matrix!(S, 3, 1); void foo(U)(U v) if (is(U == Matrix!(S,3,1), S)) { } void foo2(U)(U v) if (is(U == Vec3!S, S)) { } ``` `Foo` can compile, but `foo2` cannot compile, which is very strange! `C++` has no problem.