@@ -23464,7 +23464,7 @@ \subsection{Same Static Type}
23464
23464
In short, this transformation adds a unique prefix to every type name
23465
23465
which is resolved to a top-level declaration
23466
23466
(in the same library or in an imported library).
23467
-
23467
+
23468
23468
This transformation does not change any occurrence of \VOID,
23469
23469
and does not need to;
23470
23470
\VOID{} is a reserved word, not a type identifier.
@@ -23486,7 +23486,8 @@ \subsection{Same Static Type}
23486
23486
23487
23487
\LMHash{}%
23488
23488
When we say that two types $T_1$ and $T_2$ have the
23489
- \IndexCustom{same explicitly resolved syntax}{type!same explicitly resolved syntax},
23489
+ \IndexCustom{same explicitly resolved syntax}{%
23490
+ type!same explicitly resolved syntax},
23490
23491
it refers to the situation where the current library
23491
23492
and all libraries which are reachable via one or more imports
23492
23493
have been transformed as described above,
@@ -23502,7 +23503,7 @@ \subsection{Same Static Type}
23502
23503
A function type is the only kind of type that declares type variables.
23503
23504
For example,
23504
23505
\code{List<X>\,\,\FUNCTION<X>({X\,\,arg})}
23505
- can be turned into
23506
+ can be turned into
23506
23507
\code{List<Y>\,\,\FUNCTION<Y>({Y\,\,arg})}
23507
23508
by alpha conversion.%
23508
23509
}
@@ -23923,7 +23924,7 @@ \section*{Appendix: Algorithmic Subtyping}
23923
23924
\item
23924
23925
If $T_0$ is \code{($V_0$, \ldots, $V_n$, \{$V_{n+1} d_{n+1}$, \ldots, $V_m d_m$\})}
23925
23926
and $T_1$ is \code{($S_0$, \ldots, $S_n$, \{$S_{n+1} d_{n+1}$, \ldots, $S_m d_m$\})}
23926
- then \SubtypeNE{T_0}{T_1} if{}f \SubtypeNE{V_i}{S_i} for each $i \in 0 .. m$.
23927
+ then \SubtypeNE{T_0}{T_1} if{}f \SubtypeNE{V_i}{S_i} for each $i \in 0 .. m$.
23927
23928
\end{itemize}
23928
23929
23929
23930
0 commit comments