Defensive Programming
Assume you (and your peers) will make programming errors
Write functions that can recognize and handle bad input
- Prefer etypecase over typecase and ecase over case when the set of cases is fixed
- Use ASSERT- and CHECK-TYPE-like forms at key points where performance is not critical