Domain models are never pure. Next to the business logic sit control structures, error handling, and asynchronous computations. In Scala, data types such as Option, Either, and Cats Validated model these general programming concerns. This talk reads them as the ubiquitous language of simple computations. It shows how they can be abused, and how to refactor them into new data types.
Recorded at BeeScala 2017.