Binds the given continuation to the result of this computation.
Same as hoistN but different constraints
Changes the underlying Monad for this FreeT, ie.
Changes the underlying Monad for this FreeT, ie.
turning this FreeT[S, M, A] into a FreeT[S, N, A]
given Functors for S and N
Change the base functor S for a FreeT action.
Same as interpretS but different constraints
Evaluates a single layer of the free monad *
Runs to completion, using a function that maps the resumption from S to a monad M.