Пользуясь случаем, запитчу свою книгу, "Functional Design and Architecture". Там есть все ответы, как писать бизнес-логику на монадах, как делать DI, как делить приложение на слои, какие есть принципы дизайна, и еще куча других сведений, организованных в единую методологию разработки приложений (Haskell).
https://leanpub.com/functional-design-and-architecture