There are general challenges in software development, and different overall approaches to programming. Contracts and FP have a lot of similarities. Regardless of what style of programming you use, contracts and FP ideas can help, including:
* Explain the domain and range in your contracts
* Simplify contracts by seeking totality, purity, immutability
* Split impure methods