mirexdoors, разница такая, что без пробела вокруг операторов код будет ломаться от новых расширений для рекордов. Ещё разница такая, что вы композите эффект с чистой функцией вместо более банального применения чистой чистой функции к аргументу, с передачей результата процедуре.
Но обычно большая часть этих зависимостей уже и так есть транзитивно в любом нетривиальном проекте. Если ты не публикуешь библиотеку, то можно про это не беспокоиться.
Василий Дёмин, посмотрел ещё раз внимательно. Действительно, если есть инстанс для любого f, то он будет по факту единственным, а все типы-функторы будут обязаны фикситься именно таким образом.
А вообще это всё подозрительно напоминает содержимое пакета recursion-schemes.
Недавно подключал шесть разных соап-сервисов — у всех всё разное и несовместимое друг с другом. А самое главное, что всё это нахрен не нужно и/или не используется разработчиками сервера. А если используется, то лучше сразу повеситься т.к. это ещё пара недель на дебаг…