his book deals with F#, a language situated in the context of .NET-based software construction and engineering. As an expert F# programmer, you will need more than a knowledge of the F# language; you will also need to use a range of software engineering tools and methodologies wisely to let you build software that is truly valuable for the situation where it is deployed. We touched on some important tools in the previous chapter. In this final chapter, we look at some of the methodological issues related to F# library design. In particular:
We take a look at designing “vanilla” .NET libraries according to existing .NET design conventions and that minimize the use of F#-specific constructs.
We briefly consider some of the elements of “functional programming design methodology,” which offers important and deep insights into programming but doesn’t address several important aspects of the library or component design problems.
We give some specific suggestions on designing .NET and F# libraries, including naming conventions, how to design types and modules, and guidelines for using exceptions.