@@ -23489,19 +23489,19 @@ \subsection{Same Type}
2348923489 where $C$ and $D$ have been resolved to denote the same declaration,
2349023490 and $U_j$ is the same type as $V_j$ for all $j \in 1 .. s$.
2349123491%% TODO(eernst): When records are added, add a record type case here.
23492- \item $S$ and $T$ are both positional function types with the same
23492+ \item (1) $S$ and $T$ are both positional function types with the same
2349323493 number of mandatory parameters and the same number of optional parameters,
2349423494 the same return type, and the same type for each of the parameters.
23495- If at least one of the function types is generic
23496- then they must both be generic,
23497- and they must have textually identical type parameter declaration lists.
23498- \item $S$ and $T$ are both named function types with the same
23495+ Otherwise (2), $S$ and $T$ are both named function types with the same
2349923496 number of mandatory parameters and the same set of named parameters,
2350023497 the same return type, and the same type for each of the parameters,
2350123498 and the same subset of the named parameters marked as \REQUIRED.
23502- If at least one of the function types is generic
23499+ %
23500+ For both (1) and (2), if at least one of the function types is generic
2350323501 then they must both be generic,
2350423502 and they must have textually identical type parameter declaration lists.
23503+ With this, the $j$th type parameter declaration from $S$ and from $T$
23504+ are considered to be the same declaration, for all $j \in 1 .. s$.
2350523505\item $S$ is of the form \code{$F$<$U_1$, \ldots\ $U_s$>} where $F$
2350623506 denotes a type alias declaration,
2350723507 the unfolding of the type alias yields $S'$,
0 commit comments