хотите свои модули писать на tagless final, то вам нужно написать свой небольшой язык на котором вы будете говорить. А это задача для умных.
Вот, например, хочу я в модуле сделать merge из двух Source[User, NotUsed]:
1. Смотрю на этот Source и понимаю что он функтор (NotUsed игнорю).
2. Всё типа круто, пишу F[User] (ну или S[User] чтобы не путаться).
3. Потом фигасе, а у меня тут merge ещё нужен. Что мне с ним делать? Писать новый тайпкласс Mergeable? Использовать Semigroup#combine?
И вот для fs2 есть куча готовых примитивов, похоже (http://fs2.io/concurrency-primitives.html). Хоть сиди и реализовывай instances для Akka Streams (кстати, никто не сделал уже?).
ну там очереди, топики и сигналы
А как частно с такими потребностями как 3 вы сталкивались?
Обсуждают сегодня