Many errors occur because of changed or misunderstood function interfaces. Beyond good documentation, parameter validity checking, and parameter type alternating, 2