Macros for Designing by Contract in Objective-C simplifies the
process of using the Design by Contract software
methodology invented and pushed by Bertrand
Meyer. This involves creating a "contract" for each Object in
your program that explicitly states the input and output ranges
that the Object expects. The macros implement the pre- and
post-assertions as well as invariants and references to "old"
variables (the state of the variable before entering a method).