[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.