Здравствуйте, sambl74, Вы писали:
Все пошло отсюда
https://blog.janestreet.com/effective-ml-revisited/
Изначально это было фишкой для ФЯ вроде ocaml и haskell, а потом с подачи товарища Волшина идею "make illegal states unrepresentable" привязали к domain modeling with types (независимо от языка)
https://fsharpforfunandprofit.com/posts/designing-with-types-making-illegal-states-unrepresentable/.
DDD пропагандирует именно domain modeling with types в рамках ОО-языков, поэтому идеи типизации такого рода прижились.