This is the Web appendix to A modular module system, Xavier Leroy, Journal of Functional Programming volume 10 number 3, pages 269--303, 2000.
This appendix contains the complete source code to the modular type-checker for modules described in that article, along with the applications to mini-C and mini-ML mentioned in the article. The code is written in Objective Caml version 2.04.
modules.ml: the
type-checker for modules described in section 2 of the paper.
modules.ml.extended: a
version of the above with the relaxed typing rule for functor
applications described in section 5.5.
miniC.ml:
abstract syntax and type-checker for mini-C.
miniClexer.mll:
ocamllex lexical analyzer for mini-C.
miniCparser.mly:
ocamlyacc parser for mini-C.
miniCmain.ml:
driver program for mini-C, typechecks the source given on standard
input and prints the inferred types.
example.miniC:
an example of mini-C program with structures and functors.
miniML.ml:
abstract syntax and type-checker for mini-ML.
miniMLlexer.mll:
ocamllex lexical analyzer for mini-ML.
miniMLparser.mly:
ocamlyacc parser for mini-ML.
miniMLmain.ml:
driver program for mini-ML, typechecks the source given on standard
input and prints the inferred types.
example.miniML:
an example of mini-ML program with structures and functors.
Makefile and
dependency file to build the two
applications.
tar
archive compressed with gzip.
All the files listed above are distributed under the terms of the GNU General Public License version 2.