Deep and shallow modules:
The best modules are deep: they allow a lot of functionality to be accessed through a simple interface. A shallow module is one with a relatively complex interface, but not much functionality: it doesn’t hid much complexity.
Interface is a cost (you want to reduce it), functionality is a benefit (you want to increase it)
Josh Beckman