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