Constrained Types I’m a permanent learner. I’m always tinkering, reading, trying things, and building projects I know I’ll never finish. I first started programming with F♯ back in 2009, but I’m still learning that, too. Over the years, most anyone who spends any real effort trying to learn F♯ will encounter domain-driven design (DDD) principles. Scott Wlashcin has written pretty extensively about this, both on his website and in his book, Domain Modeling Made Functional.