In this chapter, I touch on an important aspect of the functional-first programming approach that kicks in when the F# code is in the process of being developed. It so happens that the troubleshooting of the functional-first code differs from the troubleshooting of, say, imperative code. The goal of this chapter is to share with you some of my observations collected while authoring idiomatic F# code. It should leave you equipped with some considerations and a few techniques for effective bug squashing.
In this chapter, we will look into the following topics:
Understanding reasons for idiomatic F# having a low defect rate
Using REPL and explorative programming style
Addressing some compile-time problems
Addressing run-time problems