Typed Racket
Go to file
Sam Tobin-Hochstadt 675fed4f98 Refactor type inference to eliminate exceptions.
This provides approximately 6% speedup on
`racket -l math/scribblings/math.scrbl` and about
14% speedup on the `new-metrics` test.

Mostly this involves threading #f through the whole
of the inference process.  There are several new
macros in `typed-racket/infer/fail` which are useful
for comprehensively using Maybe-monad style
programming in Racket.  Of particular note is `%`,
which satisfies (% f e ...) => (and e ... (f e ...))
but with the obvious fixes.

This commit also weakens several contracts which
caused the build of DrRacket and/or `math` to fail
when contracts were enabled.

original commit: f83950fbab8f7c1229bc020429b269a95785ca8c
2014-05-06 14:17:03 -04:00
pkgs/typed-racket-pkgs Refactor type inference to eliminate exceptions. 2014-05-06 14:17:03 -04:00