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?