возможно стоит снова развеять основной миф про ТФ. ТФ - это не техника, которую обязательно нужно применять "ко всему приложению целиком"
напомним, что ТФ - инструмент для кодирования индуктивных типов через полиморфизм,
в любом месте, где вы могли бы написать функции, возвращающие (Г)АДТ, а потом сфолдить его в результат - вы можете заменить его на ТФ