![]() 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
|
||
---|---|---|
.. | ||
abbrev.rkt | ||
base-abbrev.rkt | ||
current-seen.rkt | ||
filter-ops.rkt | ||
generalize.rkt | ||
kw-types.rkt | ||
match-expanders.rkt | ||
numeric-predicates.rkt | ||
numeric-tower.rkt | ||
printer.rkt | ||
remove-intersect.rkt | ||
resolve.rkt | ||
substitute.rkt | ||
subtype.rkt | ||
tc-error.rkt | ||
tc-result.rkt | ||
type-table.rkt | ||
union.rkt | ||
utils.rkt |