Changes:
* Several bug fixes.
* So-called "opti" relations: "k=min(m,n)" and "k=max(m,n)" in the numerical sort.
* So-called "subopti" relations "k<=max(m,n)" and "min(m,n)<=k" in the numerical sort.
* Less confusing syntax for existential types, "datatype" and "datacons" keywords.
* Pattern-matching guards "when e1 <= e2", where e1 and "e2 are expressions of type "Num".
* Positive assert clauses, "assert num e1 <= e2; ..." and "assert type e1 = e2; ...".
* Flagship example: AVL trees with imbalance of 2 (based on the implementation from OCaml standard library).