A list of things to do for Speculate.
-
(code readability) review and document code
-
(code readability) rename semi to inqualities everywhere.
-
(interface) print errors on stderr, not on stdout
-
(performance) note that variable assignments form a lattice. So I only need to test stuff from upper if the lower is true. Of course, testing is the expensive thing. But it does not pay off to test x + y = z + w before testing x + y = y + x. The second needs to hold for the first to hold. And, it will be far more common!