This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home. For a version of this page that may be more recent, see OpaqueRecordsBenefits in WG2's repo for R7RS-large.


2010-03-13 19:28:59

From R. Kent Dybvig


One value of opacity is that it simplifies program analysis, both by the user and by the compiler. When programming, it's nice to be able to scan the code where a record type declaration is visible and know whether a field is used, whether it is assigned, and what type of value it holds. If any part of the program to which we pass the object can obtain a field accessor or mutator, we've lost this ability.