The AST is expecting :__aliases__; not sure where the singular form has appeared from.
Fixing that in your sample AST and calling Macro.to_string produces:
Foo . {Bar, Baz}
It may help to contemplate this syntax, which expands to identical AST as Foo.{Bar, Baz}:
Foo."{}"(Bar, Baz)
Foo."{}" corresponds to {:., [], [{:__aliases__, [], [:Foo]}, :{}]}.
This is the same shape that a normal function call like Foo.huh(Bar, Baz) would produce, except the function being called has the otherwise-impossible name {}.






















