https://issues.dlang.org/show_bug.cgi?id=18698
--- Comment #1 from Manu <turkey...@gmail.com> --- I try this: module test; alias Members = __traits(allMembers, test); > Error: basic type expected, not `__traits` We *really* need to fix that one... So: module test; import std.meta; alias Members = AliasSeq!(__traits(allMembers, test)); pragma(msg, Members); > tuple("object", "std", "arr", "t", "Members") Okay, that's good. static foreach(m; Members) { pragma(msg, m); } Error: template instance AliasSeq!(__traits(allMembers, test)) recursive template expansion Oh dear... --