Connections are a relation between instance references. (Connections are established in the meta-language processing of compilation; they are determined at compile-time only.)
Instance references refer to specific entities at unroll-time. Instance references fall into two categories: implicit and explicit. See Arrays.
What does a = b mean in the namespace or definition context?
If the types are user-defined, then aliasing is recursive. For example, if the type of a and b has members (either public or private) x and y internally aliased, the a.x, a.y, b.x, and b,y are all valid references to the same instance of x and y's type. (Implementation: This can simply be accomplished by mapping a and b to the same instance, saving the trouble of recursive aliasing, and generating the combinations of names, not that that is ever a problem.)
Since connections and aliases are unrolled, the actual instance objects are not created until all connections have been processed.
Compiler options (proposed to support):
Support for non-alias connections?