[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: New types; also opacity without passkeys [portable R4RS impl]
From: Michael R. Blair <ziggy@martigny.ai.mit.edu>
Date: Wed, 22 May 96 21:39:58 EDT
Will Clinger writes in his proposal:
>---------------------------------------------------------------------------
> Although this proposal does not explicitly require any opacity,
> the requirement that the predicate P? returns #T if and only if
> its argument was created by a call to U cannot be implemented
> without some kind of opacity. In particular, this proposal
> cannot be implemented in R4RS Scheme.
>---------------------------------------------------------------------------
Yes, it can. Following is a portable R4RS implementation that I have
tested in both MIT Scheme and Scheme 48. It relies _only_ on the
opacity of LAMBDA closures.
I think Will meant that this condition could not be satisfied
simultaneously with new-types being distinct from R4RS-defined types.
Continuing your transcript session:
(pair? <object>)
;Value: #t
I also tried to write such a program using only procedure opacity and
convinced myself that there was no way to redefine PAIR? or PROCEDURE?
so that new-types were disjoint from R4RS types while preserving
opacity.