Regarding AST form with qualified call

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 {}.