Central premise III
The semantics of the module must remain unchanged when implementations are replaced
- Specifically, the client should not care how the interface is implemented by the module
But what captures the semantics of the module?
- The signature of the interface? Performance? What else?