struct attribute(decls...)
import std.meta : allSatisfy, ApplyRight;
import std.traits : hasUDA;
static assert (allSatisfy!(ApplyRight!(hasUDA, attribute), decls));
import std.traits : isCallable, Parameters;
static foreach (decl; decls)
static if (isCallable!decl)
static foreach (overload; __traits(getOverloads, __traits(parent, decl), __traits(identifier, decl)))
pragma(msg, __traits(identifier, decl), Parameters!overload);
pragma(msg, __traits(identifier, decl));
int funcImpl() { return 1; }
int func(int x) { return x; }
int func(int x) { return x; }