Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-06-24 01:26:53 -0700 (Thu, 24 Jun 2004)
Revision: 6007
Log message:
This is a first step towards making some of our module signature and functor
setup a bit saner (and bring us closer to being able to solve the "have to open
too many modules" bug 169).
This commit does exactly one thing instead of repeating all the TermType types
in the Term module (and corresponding signature) and keep saying all over the
place that the types are actually identical, this creates a _submodule_
Term.TermTypes that contains those repeated types.
This reduces the amount of the "useless" signature code by almost 800 lines -
mostly by allowing to replace a long list of "with type foo = TermType.foo"
with a single "with module TermTypes = TermType".
The way this is related to bug 169 is that OCaml does not allow to include
two modules that both have the same type field. E.g.
"include Refiner.Refiner.TermType;; include Refiner.Refiner.Term"
used to result in a "duplicate type term" error. However now that
Refiner.Refiner.Term does not have a term type (only Refiner.Refiner.Term.TermTypes
does), it should now be possible to include both modules into a single one.
One _all_ repeated types in all the basics modules are resolved this way,
we should be able to solve bug 169 by creating a module that includes all
the modules we care about.