F# makes it easy to encode domain models within its type system such that it is quite possible to never allow invalid states while retaining a simple, readable code base. We’ll look at a few examples, including how best to deal with inheritance vs composition, units of measure, and even language extensions for extensible domain specific languages.
Ryan Riley is a software developer for Catapult Systems in Houston, TX, a F# MVP, and has worked with the Web API project for over a year.