Added type annotations in the CharSet module to avoid mistakes; fixed a bug in the CharSet.toArray function.
Changed the (>) comparisons in AvlTree.Balance to (>=), which seems to have fixed the issue plaguing Reroot/DeleteMax.
Deleted the DIET comparison function (from the original camldiets code/paper); it's extremely slow due to all the rebalancing caused by its use of DeleteMin. Instead, we just use AvlTree.Comparison which works just fine since the intervals in a DIET are required to be maximal.