Higher order function as macro

Nvm, I found the solution: Use esc(name) to prevent mangling.

So do

macro printing(ex)
    def = splitdef(ex)
    name = def[:name]
    internal_name = gensym()
    def[:name] = internal_name
    out = quote
        $(combinedef(def))
        $(esc(name)) = printinput($internal_name)
    end    
    return out
end

for the macro