Add a TODO file in src/.
Cache calls to lex_and_parse_interface.
Fix the map3 example to have a correct type.
Implement type variables with kind PERM.

- This makes it possible to write examples such as list-map3.mz.
- However, we have to instantiate all the type variables right now. The upcoming
commits should fix this.
Add a new syntax for instantiating just one type variable.

The [map] example is now much more concise, and I've added some usage tests.
Parser fix, recognize * as the arithmetic operator.

(We would previously fail to recognize it because the token was STAR, not
OPINFIX3).
Add list-map3.mz in the test suite.
Parser changes.

The prefixed operators were too high so "!x + 1" wasn't parsed at all. I moved
the prefixed operators closer to the atomics but then I ran again in the problem
of 1 - 2 begin possibly 1 (-2). I split the atomics into two categories.

I think that's the right way to solve the problem but comments are welcome!
Try to write a slightly bigger example.

- (=) was missing, I added it.
- It was not parsable, so I fixed the parser.
- I cleaned up a few other corners.
Generate .cmt files.
Make the type-checker decorate the surface AST.

- Field assignments and field accesses are now decorated with the data
constructor they belong to.
- Tag changes are decorated with the previous tag.
Some fixes in the parser concerning the relative priority of
  record access, function application, and unary minus.
Translated part of OCaml's List module.
  Many functions are accepted, but several problems with (or limitations of)
  the type-checker appear. Also, type-checking seems to be quite slow.
The previous commit was missing some files.
Additions to the List library.
Discovered a couple more bugs; see comments near for_all and stable_sort.
Cleanup and slight fixes in the grammar (types and mode constraints).
Question: why not use "val x : int" instead of "val x @ int"? After
all, this declaration introduces a new name.
Updated the grammar so that parentheses are no longer required after assert.
Cleanup in the syntax of patterns. No observable change.
Added one layer in the syntax of patterns.
This allows more complex patterns to appear (without parentheses)
in a match branch.
Cleaned up the syntax of expressions.
Fixed the operator precedence table, which was wrong.
Missing test file.