@@ -23286,7 +23286,7 @@ \subsection{Same Static Type}
23286
23286
In short, this transformation adds a unique prefix to every type name
23287
23287
which is resolved to a top-level declaration
23288
23288
(in the same library or in an imported library).
23289
-
23289
+
23290
23290
This transformation does not change any occurrence of \VOID,
23291
23291
and does not need to;
23292
23292
\VOID{} is a reserved word, not a type identifier.
@@ -23308,7 +23308,8 @@ \subsection{Same Static Type}
23308
23308
23309
23309
\LMHash{}%
23310
23310
When we say that two types $T_1$ and $T_2$ have the
23311
- \IndexCustom{same explicitly resolved syntax}{type!same explicitly resolved syntax},
23311
+ \IndexCustom{same explicitly resolved syntax}{%
23312
+ type!same explicitly resolved syntax},
23312
23313
it refers to the situation where the current library
23313
23314
and all libraries which are reachable via one or more imports
23314
23315
have been transformed as described above,
@@ -23324,7 +23325,7 @@ \subsection{Same Static Type}
23324
23325
A function type is the only kind of type that declares type variables.
23325
23326
For example,
23326
23327
\code{List<X>\,\,\FUNCTION<X>({X\,\,arg})}
23327
- can be turned into
23328
+ can be turned into
23328
23329
\code{List<Y>\,\,\FUNCTION<Y>({Y\,\,arg})}
23329
23330
by alpha conversion.%
23330
23331
}
@@ -23745,7 +23746,7 @@ \section*{Appendix: Algorithmic Subtyping}
23745
23746
\item
23746
23747
If $T_0$ is \code{($V_0$, \ldots, $V_n$, \{$V_{n+1} d_{n+1}$, \ldots, $V_m d_m$\})}
23747
23748
and $T_1$ is \code{($S_0$, \ldots, $S_n$, \{$S_{n+1} d_{n+1}$, \ldots, $S_m d_m$\})}
23748
- then \SubtypeNE{T_0}{T_1} if{}f \SubtypeNE{V_i}{S_i} for each $i \in 0 .. m$.
23749
+ then \SubtypeNE{T_0}{T_1} if{}f \SubtypeNE{V_i}{S_i} for each $i \in 0 .. m$.
23749
23750
\end{itemize}
23750
23751
23751
23752
0 commit comments