I know that this is an escaping/hygiene problem, but after trying many ideas I don’t get the expected result. Up to now, my only way to get the expected result was to define the macro outside of the module to get: Model(Dict("x"=>:x), Dict(:x=>[1, 2, 3]))