Pensamiento arquitectónico en lenguajes funcionales

El cuadro Mis preguntas relacionadas se desborda con preguntas de programación funcional. Después de haber revisado lo más relevante, sigo sintiendo curiosidad por escuchar opiniones sobre lo siguiente:

¿Cómo piensas en estructurar una aplicación en un lenguaje funcional?

No estoy hablando de una gramática específica del idioma. Me interesan los paradigmas de organización conceptual (por ejemplo, la orientación a objetos).

Como muchos, mi primera exposición a la encapsulación y la reutilización del código provino del fondo OO. Como he estado investigando diferentes lenguajes, la programación funcional realmente me llamó la atención. Estoy empezando a captar los beneficios de la inmutabilidad, las funciones de orden superior, etcétera. Pero sigo perdiendo la idea de cómo estructurar una aplicación funcional sin recurrir a los conceptos de OO. En realidad, muchos de los ejemplos funcionales que he visto tienen más en común con el código spaghetti, aunque estoy seguro de que se debe a la simplicidad de los ejemplos en lugar de a cualquier defecto inherente en el enfoque funcional.

Esta pregunta es muy parecida a "cuándo debo usar la programación funcional", pero ya me he convencido de que el enfoque funcional, a pesar de los pros y los contras en ciertos dominios, se puede utilizar para cualquier cosa que desee. Solo tengo problemas para imaginarme la organización general de una aplicación compleja.

Respuestas a la pregunta(2)

Su respuesta a la pregunta