[plt-scheme] changes to contract implementation

From: Robby Findler (robby at cs.uchicago.edu)
Date: Sun Aug 10 19:39:37 EDT 2003

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.


Posted on the users mailing list.