=========
Summary
=========

---------
Summary
---------

* Emphasizes separations of concerns
* Solves the global visibility problem

   - Only those items in the specification are exported

* Enforces software engineering principles

   - Information hiding
   - Abstraction

* Implementation can't be corrupted by users

   - Compiler won't let users compile references to internals

* Bugs must be in the implementation, not users

   - Only body implementation code has to be understood
