Software by Tom Hirschowitz

  • This one is a prototype Camlp4 syntax extension of Objective Caml with mixin modules. It is simplistic: only the composition and close operators have been implemented. Moreover, the type system of OCaml is not powerful enough to deal with mixin modules, and so the extension uses lots of unsafe type coercions. It should be seen as an experiment for ensuring that our compilation scheme for mixin modules is valid, rather than as a compiler for mixin modules.
  • This is a prototype type-checker for Caml with mixin modules, based on the OCaml compiler. It implements a theory I formalized back in spring 2002, which has changed a lot since then. In particular, the type system of the prototype is in fact unsound, because it allows width subtyping on mixin modules. This is due to the mistake the theory makes in identifying modules with concrete mixin modules. I think that more recent versions of the theory would allow to implement the same examples, without this unsoundness.
  • This is a prototype for CMSv, written in Objective Caml. It includes some example files to illustrate the power and the weaknesses of CMSv.