Я не думаю, что это эффективный подход делать дополнительный параметр для каждого аспекта вроде СУБД.
Как я уже говорил, мне кажется, что компоненты, требующие персиста должны отдельно реализоваться в ConnectionIO, а затем транслироваться с помощью mapK или applyK в конечный тип