Equivalent of Domain Driven Design for functional programming languages What you've described is the first part of DDD, but the second part is the actual construction of domain models. The second part is the one I'm interested in. I'm not exactly sure how I'd model a domain in a functional language (albeit one that has interfaces).