Case Study: Type Safe Domain Modeling
Details
My team at SmartStream (previously IBM Algo) has been using F# for a new approval system, and we have interesting results to share. F# has a number of features that make it extremely powerful at domain modeling. It is possible to model your business domain in a way that is so expressive even your users could read it! Additionally, it is possible to design your model such that many invalid states are removed, which can greatly simplify the development and testing effort.
We will spend time looking at several examples from converting our domain models from C# into the F# type system, along with several bugs we prevented along the way. We also found a great productivity benefit by using a third-party "Either" library, which we will demonstrate.
