Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#