You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Write a Reification trait, parameterized on IO[[]], F[_] and A (return type), returning an F[A] and taking an implicit IO. The method calls the appropriate IO operation with stored parameters.
Implement XXXF sealed traits for every algebra. (XXX is part before the IO in the algebra, so File for FileIO). Each XXXF trait extends Reification and is implemented by one case class per operation in the algebra.
Write an Embed typeclass with a single operation that takes a Reification instance and wraps it in some F[_]. Cannonically that would be a Free instance, but hey, there are other options. There are also two different libraries providing Free, so...
Write a finally tagless interpreter for each algebra which generates the appropriate F instance. Each interpreter will take an Embed instance and use it to wrap each F.
The text was updated successfully, but these errors were encountered:
Emed renamed to Lift, Reification renamed to Term.
Had to work around the lack of kind polymorphism because of Terms that produce other algebras and need to fill in the F[_] on the returned algebra. Lots of type lambdas now.
Creation of Scalaz and Cats integrations are being deferred to other issues.
The text was updated successfully, but these errors were encountered: