What sorts of things count as types in Java?
Other stuff: int, boolean, ...
What should be a part of the contract and purpose in Java? Well, we
don’t need to write down things that are already part of the type. If
the contract corresponds to the type, you don’t have to repeat it.
However, some contracts can’t be checked by the type system—