\section{Module \ocamlinlinecode{Ocaml\_\allowbreak{}55}}\label{Ocaml_55}%
\label{Ocaml_55--module-type-X}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocaml_55-module-type-X]{\ocamlinlinecode{X}}}\label{Ocaml_55-module-type-X}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocaml_55-module-type-X--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} t}\\
\label{Ocaml_55-module-type-X--val-x}\ocamlcodefragment{\ocamltag{keyword}{val} x : int}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{Ocaml_55--type-m}\ocamlcodefragment{\ocamltag{keyword}{type} m = (\ocamltag{keyword}{module} \hyperref[Ocaml_55-module-type-X]{\ocamlinlinecode{X}})}\\
\label{Ocaml_55--val-f0}\ocamlcodefragment{\ocamltag{keyword}{val} f0 : \hyperref[Ocaml_55--type-m]{\ocamlinlinecode{m}} \ocamltag{arrow}{$\rightarrow$} unit}\\
\label{Ocaml_55--val-f55}\ocamlcodefragment{\ocamltag{keyword}{val} f55 : (\ocamltag{keyword}{module} M : \hyperref[Ocaml_55-module-type-X]{\ocamlinlinecode{X}}) \ocamltag{arrow}{$\rightarrow$} \hyperref[xref-unresolved]{\ocamlinlinecode{M.\allowbreak{}t}}}\\
\label{Ocaml_55--val-f'}\ocamlcodefragment{\ocamltag{keyword}{val} f' : (\ocamltag{keyword}{module} M : \hyperref[Ocaml_55-module-type-X]{\ocamlinlinecode{X}} \ocamltag{keyword}{with} \ocamltag{keyword}{type} \hyperref[Ocaml_55-module-type-X--type-t]{\ocamlinlinecode{t}} = int) \ocamltag{arrow}{$\rightarrow$} int}\\
\label{Ocaml_55--val-f''}\ocamlcodefragment{\ocamltag{keyword}{val} f'' : (\ocamltag{keyword}{module} \hyperref[Ocaml_55-module-type-X]{\ocamlinlinecode{X}} \ocamltag{keyword}{with} \ocamltag{keyword}{type} \hyperref[Ocaml_55-module-type-X--type-t]{\ocamlinlinecode{t}} = int) \ocamltag{arrow}{$\rightarrow$} int}\\
\label{Ocaml_55--module-type-Y}\ocamlcodefragment{\ocamltag{keyword}{module} \ocamltag{keyword}{type} \hyperref[Ocaml_55-module-type-Y]{\ocamlinlinecode{Y}}}\label{Ocaml_55-module-type-Y}\ocamlcodefragment{ = \ocamltag{keyword}{sig}}\begin{ocamlindent}\label{Ocaml_55-module-type-Y--type-t}\ocamlcodefragment{\ocamltag{keyword}{type} 'a t}\\
\label{Ocaml_55-module-type-Y--val-return}\ocamlcodefragment{\ocamltag{keyword}{val} return : \ocamltag{type-var}{'a} \ocamltag{arrow}{$\rightarrow$} \ocamltag{type-var}{'a} \hyperref[Ocaml_55-module-type-Y--type-t]{\ocamlinlinecode{t}}}\\
\end{ocamlindent}%
\ocamlcodefragment{\ocamltag{keyword}{end}}\\
\label{Ocaml_55--val-g}\ocamlcodefragment{\ocamltag{keyword}{val} g : (\ocamltag{keyword}{module} M : \hyperref[Ocaml_55-module-type-Y]{\ocamlinlinecode{Y}}) \ocamltag{arrow}{$\rightarrow$} int \hyperref[xref-unresolved]{\ocamlinlinecode{M.\allowbreak{}t}}}\\
\label{Ocaml_55--val-g'}\ocamlcodefragment{\ocamltag{keyword}{val} g' : (\ocamltag{keyword}{module} M : \hyperref[Ocaml_55-module-type-Y]{\ocamlinlinecode{Y}}) \ocamltag{arrow}{$\rightarrow$} int}\\
\label{Ocaml_55--val-g''}\ocamlcodefragment{\ocamltag{keyword}{val} g'' : (\ocamltag{keyword}{module} \hyperref[Ocaml_55-module-type-Y]{\ocamlinlinecode{Y}}) \ocamltag{arrow}{$\rightarrow$} int}\\
\label{Ocaml_55--val-map2}\ocamlcodefragment{\ocamltag{keyword}{val} map2 : ('a.\allowbreak{} \ocamltag{type-var}{'a} \ocamltag{arrow}{$\rightarrow$} \ocamltag{type-var}{'a}) \ocamltag{arrow}{$\rightarrow$} (\ocamltag{type-var}{'a} * \ocamltag{type-var}{'b}) \ocamltag{arrow}{$\rightarrow$} \ocamltag{type-var}{'a} * \ocamltag{type-var}{'b}}\\


