@@ -23430,19 +23430,19 @@ \subsection{Same Type}
2343023430 where $C$ and $D$ have been resolved to denote the same declaration,
2343123431 and $U_j$ is the same type as $V_j$ for all $j \in 1 .. s$.
2343223432%% TODO(eernst): When records are added, add a record type case here.
23433- \item $S$ and $T$ are both positional function types with the same
23433+ \item (1) $S$ and $T$ are both positional function types with the same
2343423434 number of mandatory parameters and the same number of optional parameters,
2343523435 the same return type, and the same type for each of the parameters.
23436- If at least one of the function types is generic
23437- then they must both be generic,
23438- and they must have textually identical type parameter declaration lists.
23439- \item $S$ and $T$ are both named function types with the same
23436+ Otherwise (2), $S$ and $T$ are both named function types with the same
2344023437 number of mandatory parameters and the same set of named parameters,
2344123438 the same return type, and the same type for each of the parameters,
2344223439 and the same subset of the named parameters marked as \REQUIRED.
23443- If at least one of the function types is generic
23440+ %
23441+ For both (1) and (2), if at least one of the function types is generic
2344423442 then they must both be generic,
2344523443 and they must have textually identical type parameter declaration lists.
23444+ With this, the $j$th type parameter declaration from $S$ and from $T$
23445+ are considered to be the same declaration, for all $j \in 1 .. s$.
2344623446\item $S$ is of the form \code{$F$<$U_1$, \ldots\ $U_s$>} where $F$
2344723447 denotes a type alias declaration,
2344823448 the unfolding of the type alias yields $S'$,
0 commit comments