Pre-application of an injection to a F[A]
value.
Free[S, ?]
has a monad for any type constructor S[_]
.
a FunctionK, suitable for composition, which calls compile
Perform a stack-safe monadic fold from the source context F
into the target monad G
.
Perform a stack-safe monadic fold from the source context F
into the target monad G
.
This method can express short-circuiting semantics. Even when
fa
is an infinite structure, this method can potentially
terminate if the foldRight
implementation for F
and the
tailRecM
implementation for G
are sufficiently lazy.
a FunctionK, suitable for composition, which calls foldMap
This method is used to defer the application of an Inject[F, G] instance.
This method is used to defer the application of an Inject[F, G]
instance. The actual work happens in
FreeInjectPartiallyApplied#apply
.
This method exists to allow the F
and G
parameters to be
bound independently of the A
parameter below.
Lift an F[A]
value into the free monad.
Lift a pure A
value into the free monad.
Suspend the creation of a Free[F, A]
value.