Ну пока писали ядро с логикогй, всё было хорошо. А вот понадобилось прикрутить к нему некоторый бэкенд, и началось.
(дисклеймер: если «нет» в списке ниже вызывает негодование, читать как «не нашли». Если неправильно употреблена терминология, поправляйте.)
1. HTTP/REST stuff. Удобного фреймворка, наподобие Spock/Yesod/Servant (при всём различном отношении ко всем трём) нет. Есть монструозный Ocsigen/Eliom, который втаскивать было страшно. Взяли компактненький opium – умеет мало чего, но хватало (хотя из-за скудности документации порой приходилось лазить в сорцы); а потом выяснилось, что у cohttp, поверх которого он построен, какие-то имманентные проблемы с производительностью, и пришлось наваять велосипед поверх httpaf.
2. Websockets. Полторы библиотеки, обе очень низкоуровневые, опять поверх cohttp, к проекту не прикрутились из-за какого-то конфликта зависимостей.
3. Биндинги к libsodium. Имеющиеся на опаме нихрена не умеют. Нашлись альтернативные, которые пришлось дополнительно форкать.
4. Base58 – аналогично.
5. SQL/ORM – ни одного законченного решения «от БД до окамлового типа», каждая либа умеет какой-то небольшой кусок, приходится кучу бойлерплейта писать.