The principled separation between base- and meta-interfaces is the primary principle of the reflective modules we propose for open implementations. But there is a great deal more than this to properly opening implementations in this way.
In some sense, traditional black-box abstractions have always had a crude meta-interface --- if client programmers did not like mapping decisions made inside a module implementation, they could write a new one entirely from scratch!
To capture the key properties of a well-designed open implementation, the following additional concepts are important:
Note that a client of a properly designed OI can often be more reliable than the client of a black-box module approach, because the small meta-programs reduce the occurrence of large failure-prone hematomas that may otherwise be present.
![]() |
Return to the Open Implementation
Site Guide Return to the Open Implementation Home Page |