Enforcing the rules...
- The best way of making sure the client doesn't take advantage of
things he or she shouldn't take advantage of is to not tell him or
her about it.
- Even better if we can avoid telling the compiler about those
details, because this makes it impossible to take advantage of
implementation details by accident.