Manera funcional de implementar diseño dirigido por dominio

He tenido mucha experiencia escribiendo aplicaciones dirigidas por dominios usando C #. Cuantas más aplicaciones escribo, más encuentro que quiero adoptar un enfoque que no encaja bien con las técnicas estándar de C # / OO:

Quiero escribir tantas funciones puras como sea posible porque son realmente fáciles de probar.Quiero escribir mi lógica de negocios de una manera más declarativa.

Así que he estado buscando lenguajes funcionales como F #. Después de todo, no hay ninguna razón por la cual el diseño impulsado por dominiotiene para ser implementado usando OO.

Me preguntaba si alguien tiene alguna idea / experiencia con el diseño de diseño impulsado por Dominio mientras usa un lenguaje funcional. Especialmente:

¿Cómo sería un modelo de dominio funcional?¿Cómo abstraería la capa de acceso a datos del modelo de dominio?

Respuestas a la pregunta(4)

Su respuesta a la pregunta