We're familiar with the idea of conceptually modelling a domain, but this frequently breaks down when moving from concept to code. Often, our choice of language slowly but surely leads to misunderstanding not just between domain experts and developers, but between developments within the team itself.
This talk will take a real-world example and show how F# allows us to succinctly and accurately model concepts that are both readable and understandable for non-techical team members, whilst providing developers with the ability to make illegal states unrepresentable within our code.
We'll also see how F#'s unique interactive REPL helps us to iteratively evolve a domain in bitesize steps, naturally moving towards a viable solution.