Michael Perry states in his Pluralsight course on Provable Code (transcript subscription only) that:
[T]he burden of proof rests with the caller
In a code contract, why must the burden of proof rest with the caller and not the method of the class that is being called? Is this a preferred convention or does it have a more solid basis? At the moment it just like a dogma to me as the class being called could make its own safety checks, which would reduce calling code duplication.