racket/collects/typed-racket/types
Sam Tobin-Hochstadt 20f546110b Refactor subtype.rkt not to use exceptions.
Matthew suggests that using exceptions for failure
in the implementation of `subtype` is a performance
problem.  This commit removes all use of exceptions
for failure in subtype.rkt, replacing it with the
standard Racket #f/value option.

Extensive use is made of the `subtype-seq` form,
which is basically do-notation for the subtyping
monad.
(cherry picked from commit a6f110893f)
2013-07-08 10:34:09 -04:00
..
abbrev.rkt Fix subtyping of (ListDots t 'a) <: (Listof t). 2013-07-08 10:34:07 -04:00
base-abbrev.rkt Fix subtyping of (ListDots t 'a) <: (Listof t). 2013-07-08 10:34:07 -04:00
current-seen.rkt
filter-ops.rkt
generalize.rkt
kw-types.rkt
match-expanders.rkt Terminate typechecking on cyclic lists. 2013-07-08 10:34:06 -04:00
numeric-predicates.rkt
numeric-tower.rkt
printer.rkt
remove-intersect.rkt
resolve.rkt
substitute.rkt
subtype.rkt Refactor subtype.rkt not to use exceptions. 2013-07-08 10:34:09 -04:00
tc-error.rkt
tc-result.rkt
type-table.rkt
union.rkt
utils.rkt