Где рассказали бы про finally tagless/алгебры объектов, про фабрики тоже слово бы сказали, про сопоставление с образом, про принципы открытости/закрытости и так далее
Короче вывод примерно такой с уменьшением гранулярности и ответственности растет колличество синтетических связей и объектов и уровней вложенности в классическом ооп коде
Я не эксперт в функциональном программировании но что то мне подсказывает глядя на схемы типов хаскеля что у них тоже не все в порядке если используются только классические подходы