2.5.1. Code Contracts
Your code, whether explicitly or implicitly, contains a contract.
A contract has two sides:
A contract is a requirement, which is a restriction on how the code is used
A contract is a promise, which is a guarantee about how the code behaves






