This chapter is long on detail and short on the motivation and pragmatics of using contracts. See Contracts in the Guide for more of the latter and less of the former.
A contract controls the flow of values to ensure that the expectations of one party are met by another party. The provide/contract form is the primary mechanism for associating a contract with a binding.
Note that all of the combinators that accept contracts as arguments use coerce-contract, meaning that symbols, booleans, strings, bytess, characters, numbers, regular expressions, and predicates are all implicitly converted into contracts.