case, the caller abuses the callee API by making certain
assumptions about its behavior (that the return value can be used
for authentication purposes). One can also violate the caller-callee
contract from the other side. For example, if a coder subclasses