Do not generate implicit aliases
Aliases are copies (they own their fields).
Ensure struct/topic fields have user defined name.
Do not put external values as part of the type.


The rational is that an ident is *not* an alias.
So using an ident inside a value doesn’t put stuff in the value,
it only references it.

This solve issues when dumping the Ast, especially
when an ident is used multiple times or has the
same name as a local variable.
misc comments