static string toString() { return s; }
alias printf = core.stdc.stdio.printf;
auto printf(Args...)(Args args) if (isInstanceOf!(interp, Args[0]))
alias genFormat = function() {
static if(isInstanceOf!(interp, T))
else static if(is(T == int))
else static if(is(T : const(char)[]))
else static if(is(T == float) || is(T == double))
static immutable formatStr = genFormat();
alias genMixin = function() {
string result = "return core.stdc.stdio.printf(formatStr.ptr";
static if(!isInstanceOf!(interp, T)){
static if(is(T : const(char)[]))
result ~= ", cast(int)args[" ~ i.stringof ~ "].length, args[" ~ i.stringof ~ "].ptr";
result ~= ", args[" ~ i.stringof ~ "]";
printf(interp!"Hello, "(), name, interp!", you are "(), age, interp!" years old.\n"());
printf("And normal printf works too, %s\n", name.ptr);