module a; struct A(alias foo) { auto foo() { return foo(); } } module b; import a; void main() { auto a = A!bar(); } private int bar() { return 42; } This do not work. I think it is a bug but I see how could see it as a feature. Which one is it ?