@@ -130,11 +130,13 @@ You could give the predicate a more descriptive name as follows:
130
130
Strong and weak aliases
131
131
=======================
132
132
133
- Every alias is either **strong ** or **weak **.
134
- An alias is **strong ** if and only if it is a :ref: `type alias <type-aliases >` with :ref: `annotation <annotations >`
135
- ``final ``.
136
- During :ref: `name resolution <name-resolution >`, ambiguity between **weak ** aliases of the same target is allowed,
137
- but ambiguity between distinct **strong ** aliases or entities is invalid QL.
138
- For the purpose of applicative instantiation of :ref: `parameterised modules <parameterized-modules >` and
139
- `:ref: `parameterised module signatures <parameterized-module-signatures> `, **weak ** aliases of instantiation
140
- arguments are considered equivalent, but distinct **strong ** aliases result in separate instantiations.
133
+ Every alias definition is either **strong ** or **weak **.
134
+ An alias definition is **strong ** if and only if it is a :ref: `type alias <type-aliases >` definition with
135
+ :ref: `annotation <annotations >` ``final ``.
136
+ During :ref: `name resolution <name-resolution >`, ambiguity between aliases from **weak ** alias definitions
137
+ for the same module/type/predicate is allowed, but ambiguity between between aliases from distinct **strong **
138
+ alias definitions is invalid QL.
139
+ Likewise, for the purpose of applicative instantiation of :ref: `parameterised modules <parameterized-modules >`
140
+ and `:ref: `parameterised module signatures <parameterized-module-signatures> `, aliases from **weak ** alias
141
+ definitions for instantiation arguments do not result in separate instantiations, but aliases from **strong **
142
+ alias definitions for instantiation arguments do.
0 commit comments