[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

opaque record types

I have several of questions about the 'opaque'

- Why are its effects limited to the reflective
  procedures?  Is it a restriction on them or
  is something more general intended?  Should
  implementation-specific debuggers be allowed to
  inspect opaque records?  It seems very un-Scheme-like
  to explicitly restrict programs and implementations
  in this way.  A program that runs in an implementation
  that implements this restriction will get the same
  result in one that ignores it.

- If this functionality is important, shouldn't
  there be a general mechanism that would apply
  to procedures, ports, and other data structures
  as well?

- It seems unfortunate to have to specify opacity
  when a record type is created.  Suppose I want
  to use a general queue package, say, that is
  implemented using non-opaque records, but I want
  to hide the internals.  As it is, I must create
  my own opaque type that wraps the general one.

                                -Richard Kelsey