\section{Module \ocamlinlinecode{Module\_\allowbreak{}type\_\allowbreak{}subst}}\label{module-Module_type_subst}%
\label{module-Module_type_subst-module-Local}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Local]{\ocamlinlinecode{Local}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Local-type-local}\ocamlcodefragment{\ocamltag{keyword}{type} local := int * int}\\
\label{module-Module_type_subst-module-Local-module-type-local}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Local-module-type-local]{\ocamlinlinecode{local}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Local-module-type-local-type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = \hyperref[module-Module_type_subst-module-Local-type-local]{\ocamlinlinecode{local}}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Local-module-type-w}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} w = \hyperref[module-Module_type_subst-module-Local-module-type-local]{\ocamlinlinecode{local}}}\\
\label{module-Module_type_subst-module-Local-module-type-s}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Local-module-type-s]{\ocamlinlinecode{s}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-type-s}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Basic}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Basic]{\ocamlinlinecode{Basic}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Basic-module-type-u}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Basic-module-type-u]{\ocamlinlinecode{u}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Basic-module-type-u-module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Basic-module-type-u-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Basic-module-type-with_}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Basic-module-type-with_]{\ocamlinlinecode{with\_\allowbreak{}}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Basic-module-type-with_-module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} T = \hyperref[module-Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Basic-module-type-u2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Basic-module-type-u2]{\ocamlinlinecode{u2}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Basic-module-type-u2-module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Basic-module-type-u2-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Basic-module-type-u2-module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Basic-module-type-u2-module-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Basic-module-type-with_2}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Basic-module-type-with_2]{\ocamlinlinecode{with\_\allowbreak{}2}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Basic-module-type-with_2-module-type-T}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Basic-module-type-with_2-module-type-T]{\ocamlinlinecode{T}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Basic-module-type-with_2-module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Basic-module-type-with_2-module-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Basic-module-type-a}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Basic-module-type-a]{\ocamlinlinecode{a}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Basic-module-type-a-module-type-b}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} b = \hyperref[module-Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\\
\label{module-Module_type_subst-module-Basic-module-type-a-module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Basic-module-type-a-module-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Basic-module-type-c}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Basic-module-type-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Basic-module-type-c-module-M}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Basic-module-type-c-module-M]{\ocamlinlinecode{M}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Nested}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Nested]{\ocamlinlinecode{Nested}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Nested-module-type-nested}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Nested-module-type-nested]{\ocamlinlinecode{nested}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Nested-module-type-nested-module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Nested-module-type-nested-module-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Nested-module-type-nested-module-N-module-type-t}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Nested-module-type-nested-module-N-module-type-t]{\ocamlinlinecode{t}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Nested-module-type-with_}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Nested-module-type-with_]{\ocamlinlinecode{with\_\allowbreak{}}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Nested-module-type-with_-module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Nested-module-type-with_-module-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Nested-module-type-with_-module-N-module-type-t}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} t = \hyperref[module-Module_type_subst-module-type-s]{\ocamlinlinecode{s}}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Nested-module-type-with_subst}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Nested-module-type-with_subst]{\ocamlinlinecode{with\_\allowbreak{}subst}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Nested-module-type-with_subst-module-N}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Nested-module-type-with_subst-module-N]{\ocamlinlinecode{N}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Structural}\ocamlcodefragment{\ocamltag{keyword}{module} \hyperref[module-Module_type_subst-module-Structural]{\ocamlinlinecode{Structural}}}\ocamlcodefragment{ : \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Structural-module-type-u}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Structural-module-type-u]{\ocamlinlinecode{u}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Structural-module-type-u-module-type-a}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Structural-module-type-u-module-type-a]{\ocamlinlinecode{a}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Structural-module-type-u-module-type-a-module-type-b}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Structural-module-type-u-module-type-a-module-type-b]{\ocamlinlinecode{b}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Structural-module-type-u-module-type-a-module-type-b-module-type-c}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Structural-module-type-u-module-type-a-module-type-b-module-type-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Structural-module-type-u-module-type-a-module-type-b-module-type-c-type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = }\\
\begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| \ocamltag{constructor}{A} \ocamltag{keyword}{of} \hyperref[module-Module_type_subst-module-Structural-module-type-u-module-type-a-module-type-b-module-type-c-type-t]{\ocamlinlinecode{t}}}\label{module-Module_type_subst-module-Structural-module-type-u-module-type-a-module-type-b-module-type-c-type-t.A}\\
\end{ocamltabular}%
\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{module-Module_type_subst-module-Structural-module-type-w}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Structural-module-type-w]{\ocamlinlinecode{w}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Structural-module-type-w-module-type-a}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Structural-module-type-w-module-type-a]{\ocamlinlinecode{a}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Structural-module-type-w-module-type-a-module-type-b}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Structural-module-type-w-module-type-a-module-type-b]{\ocamlinlinecode{b}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Structural-module-type-w-module-type-a-module-type-b-module-type-c}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[module-Module_type_subst-module-Structural-module-type-w-module-type-a-module-type-b-module-type-c]{\ocamlinlinecode{c}}}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{module-Module_type_subst-module-Structural-module-type-w-module-type-a-module-type-b-module-type-c-type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t = }\\
\begin{ocamltabular}{p{1.000\textwidth}}\ocamlcodefragment{| \ocamltag{constructor}{A} \ocamltag{keyword}{of} \hyperref[module-Module_type_subst-module-Structural-module-type-w-module-type-a-module-type-b-module-type-c-type-t]{\ocamlinlinecode{t}}}\label{module-Module_type_subst-module-Structural-module-type-w-module-type-a-module-type-b-module-type-c-type-t.A}\\
\end{ocamltabular}%
\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\


