Уже сейчас можно увидеть соответствующий код: клиентское приложение, выполненное поверх (фри-монадного) фреймворка Hydra, где бизнес-логика работает с интерфейсом внешней подсистемы (отправляет через этот интерфейс астероиды и метеориты на сервер). И есть уже примеры 4 интерфейсов:
- ReaderT
- Service Handle
- Free Monad
- GADT
Еще сегодня добавлю Final Tagless (mtl).
А имплементацией в данном случае является способ, которым мы отправляем метеоры/астероиды. Это может быть TCP или HTTP.
https://github.com/graninas/Hydra/tree/master/app/astro/Astro/Client