Do not program defensively ∞
Most of the code in the system should be written with the assumption that the input data to the function in question is correct. Only a small part of the code should actually perform any checking of the data. This is usually done when data enters the system for the first time, once data has been checked as it enters the system it should thereafter be assumed correct.
source: Program Development Using Erlang