Certainly your definitions of printing_type and print could be shortened. You're currently doing
print(t...) // print(a,b,c,d)
but what you actually want to happen is
print(t)... // print(a), print(b), print(c), print(d)
So then you have to do a bunch of extra work to transform the former into the latter. Instead of all that extra work, you could just ...