[plt-scheme] changes to contract implementation
I made some changes internally to the contract implementation, based on
better insight I have about contracts (due to working out contracts as
error projections for a POPL submission). The end result is that
they're faster and the interface is slightly different. I tried to keep
it backwards compatible for the most part; I hope you'll forgive a few
name changes:
and/f -> and/c
;; it doesn't consume functions anymore, but arbitrary contracts
or/f -> union
;; or/f never really was useful; now it is gone
flat-named-contract-predicate -> flat-contract-predicate
;; flat-contracts (without names) are now a separate type
I've left definitions for these in, but when you use them it prints a
"deprecated" warning message asking you to change your code (and
macro-expands to the other name). I would have just changed the files
in our CVS archives, but several of the files are revised quite a bit
beyond the exp tag, so this seemed prudent.
New documentation should be available tomorrow.
Robby