The FieldNameTuple from std.traits returns a tuple of names of all the fields that are present on a type instance. What about the result on things that can't have fields? import std.traits; interface I { int foo(); } pragma(msg, FieldNameTuple!I); Without looking up the docs, or trying it, what do you think it does? -Steve