Maneira funcional de implementar o design controlado por domínio

Eu tive muita experiência em escrever aplicativos orientados a domínio usando C #. Quanto mais aplicativos eu escrevo, mais acho que quero adotar uma abordagem que não se encaixa tão bem com as técnicas C # / OO padrão:

Eu quero escrever tantas funções puras quanto possível, porque elas são realmente fáceis de testar.Quero escrever minha lógica de negócios de uma maneira mais declarativa.

Então, eu estive analisando linguagens funcionais como F #. Afinal, não há razão para o design orientado a domíniotem para ser implementado usando OO.

Fiquei me perguntando se alguém tem alguma idéia / experiência em fazer design de design orientado por domínio enquanto usa uma linguagem funcional. Especialmente:

Como seria um modelo de domínio funcional?Como você abstraia a camada de acesso a dados do modelo de domínio.

questionAnswers(4)

yourAnswerToTheQuestion