Когда я go в реализации потоковых операций fs2, я часто вижу fromFreeC
и Algebra
, используемые там.
Что именно fromFreeC
и Algebra
делают? Почему и когда они нужны?
Вот пример операции потока fs2 eval
, которая оценивает эффекты и возвращает эффективный поток.
def eval[F[_], O](fo: F[O]): Stream[F, O] =
fromFreeC(Algebra.eval(fo).flatMap(Algebra.output1))