[plt-dev] Changes to the contract system

From: Carl Eastlund (cce at ccs.neu.edu)
Date: Sat Feb 6 19:25:08 EST 2010

On Sat, Feb 6, 2010 at 6:57 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
> On Feb 6, 2010, at 3:40 PM, Carl Eastlund wrote:
>> I have just committed a change to the contract system which provides a
>> new interface for constructing custom contracts, as well as a new
>> underlying representation for contracts to support this interface.
>> For the purpose of most developers, very little will change; all
>> existing contracts will continue to function as they have.
>> There are three main user-facing changes.
>> One, all flat contracts (other than constants, such as numbers and
>> strings) may now be applied as predicates.
> Would it be possible to turn the contract 5 into (curry = 5) and to turn "hello world" into (curry string=? "hello world") in these cases?

The contract 5 is 5.  If you want (5 5) to yield #t and (5 4) to yield
#f, you're going to have to discuss the nature of procedure? and #%app
with Matthew.

> (Oh and how are hygienic ACL2 macros doing -)

If I tell you "making more progress during the week than on the
weekend", you're just going to ask me what a weekend is, aren't you?
Yeah, I figured...


Posted on the dev mailing list.