frees-io / freestyle

A cohesive & pragmatic framework of FP centric Scala libraries

Home Page:http://frees.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Document `FS[_]` and `FS.Seq[_]` dependent types in `@free` and `@tagless` algebras.

raulraja opened this issue · comments

Document `FS[_]` and `FS.Seq[_]` dependent types in `@free` and `@tagless` algebras.

This issue is solved in Pull Request #477.

Note that there are no type aliases FS.Seq and FS.Par for the @tagless macro. These aliases are used in @free to differentiate a combination of operations using FreeS.Par = FreeApplicative, from a combination using FreeS = Free[FreeApplicative[-]]. The reason we care for this separation is because, when interpreting the whole computation to a target M, for the former we need to combine operations using an Applicative[M], whereas for the latter we would combine them with a Monad[M].

Now, in the @tagless algebra, we never interpret a whole combination into the target M[_], because every single operation is directly interpreted into M.

The PR above was already merged a while ago.