* It is probably a Good Plan to make the simplifier monad carry the
global symbol table, just as the desugarer monad does, so that rules can
readily grab these `Id`s. That would be generally useful.

* Maybe it's worth having `Integer/Int` versions of all the `Integer`
operations. Or not. It's a big surprise to me that the cost of unboxing
that `S#` is 20% of execution time; and also allocation is higher and I
don't understand why.

The problem was that `mod` was calling `divModInteger`, which returns a
pair. As `divModInteger` wasn't being inlined any more, we were always
allocating the pair, and then throwing away the unwanted value.