Simplify the automaton encoding a bit (remove redundant predicates in formulae).
Remove the timestamp header in source files. This information is better kept in git.
Flatten the sources, only leave the XPath module packed.
Refactor module organisation and build process.
Sanitize header files and add a timestamp mark in each source file.
Refactor the code to have a unique place for signature definition. Re-architecture the code to have all signatures in the sigs.ml module. Any signature which occurs at least twice in the code (e.g. in a.ml and corresponding a.mli) is put in a module A in Sigs. The signature can the be included in a.ml and its 'module type of' can be included in a.mli. private signatures can stay in the .ml files where they appear.
Usable version: - use ocamlbuild - cherry pick Pretty, State, StateSet and Formula from SXSI - Parsing of XML documents