Описание услуги
Я инженер функционального программирования и ежедневно работаю на Koka — исследовательском языке, построенном вокруг алгебраических эффектов и строковых (row-based) типов эффектов. Если вам нужен прототип, библиотека или инструмент рядом с компилятором, где каждый побочный эффект отслеживается в сигнатуре типа, а не спрятан в рантайме, я помогу. Обычно моя работа выглядит так: я описываю вашу предметную область небольшим набором операций-эффектов, пишу обработчики, придающие этим операциям конкретный смысл, и позволяю проверяльщику типов Koka доказать, что ни один необработанный эффект не ускользнёт. Благодаря этому одна и та же логика запускается на реальной базе данных, на заглушке или в детерминированном воспроизведении для тестов — достаточно подменить обработчик. Этим приёмом я строил парсеры, конечные автоматы, асинхронные конвейеры и интерпретаторы небольших предметных языков. Со стороны компилятора я уверенно читаю, как Koka разворачивает эффекты в стиль передачи свидетельств (evidence-passing), рассуждаю о том, как типизированная компиляция понижает обработчики, и диагностирую, почему строка эффектов не унифицируется так, как вы ожидали. В результате вы получаете чистый комментированный исходник на Koka, короткую проектную заметку с обоснованием выбранных сигнатур эффектов и набор тестов, проверяющий каждый обработчик по отдельности. Сложные места я описываю отдельно, чтобы команда могла сопровождать код после меня. Если вы рассматриваете обработчики эффектов как замену трансформерам монад или лапше из колбэков — присылайте задачу, и я предложу конкретный дизайн эффектов ещё до старта.