Exposes the exceptions thrown in the Catchable context.
Exposes the exceptions thrown in the Catchable context.
Creates an F[A]
instance from a provided function
that will have a callback injected for signaling the
final result of an asynchronous process.
Creates an F[A]
instance from a provided function
that will have a callback injected for signaling the
final result of an asynchronous process.
NOTE: compared with unsafeCreate, this version should be
stack safe. Implementors can just use
effects4s.util.async.safeCreate for building a safe
create
.
is a function that will be called with a callback for signaling the result once it is ready
Returns an F[A]
that evaluates the provided by-name fa
parameter on each run.
Returns an F[A]
that evaluates the provided by-name fa
parameter on each run. In essence it builds an F[A]
factory.
Constructor for F[A]
that's going to evaluate the
given by-name value in the F
context, with whatever
properties this data-type may have (e.g.
Constructor for F[A]
that's going to evaluate the
given by-name value in the F
context, with whatever
properties this data-type may have (e.g. lazy, async,
exceptions catching, etc).
For pure expressions, in case F[_]
also implements the
Applicative
type-class, then this operation should yield
a value that's equivalent with pure(f)
.
In case this is an applicative, should be isomorphic to:
F.pure(()).map(_ => F.pure(f))
In case F[_]
implements ApplicativeError[Throwable, F]
,
then eval(throw ex)
should be equivalent with raiseError(ex)
.
Lifts any Throwable
error in the Catchable context.
Lifts any Throwable
error in the Catchable context.
Creates an F[A]
instance from a provided function
that will have a callback injected for signaling the
final result of an asynchronous process.
Creates an F[A]
instance from a provided function
that will have a callback injected for signaling the
final result of an asynchronous process.
NOTE: this function is "unsafe" in the sense that implementations
shouldn't care about stack-safety when invoking the register
function or the injected callback for signaling the final result.
Users shouldn't call this function directly without handling stack safety concerns. One way to avoid stack overflow errors is to trigger thread-local asynchronous execution by means of TrampolinedContext.
is a function that will be called with a callback for signaling the result once it is ready
Extracts the A
value out of the F[_]
context, where
that value can be the result of an asynchronous computation.
Extracts the A
value out of the F[_]
context, where
that value can be the result of an asynchronous computation.
represents the computation to execute, potentially async
is the callback that will get called once a result is ready
Extracts the A
value out of the F[_]
context, where
that value can be the result of an asynchronous computation,
returning an immediate result if the underlying computation
yielded an immediate (synchronous) result.
Extracts the A
value out of the F[_]
context, where
that value can be the result of an asynchronous computation,
returning an immediate result if the underlying computation
yielded an immediate (synchronous) result.
This operation is an optimization on unsafeExtractAsync because for implementations capable of returning an immediate result there's no need to force an async boundary.
Note that in case this method needs to return an error
(described as a Throwable
), then that error should be returned
asynchronously (by means of the provided callback), that
callback being the only legal way to signal exceptions when
calling this method.
is the callback that will get called once a result is ready, if the execution was asynchronous
Left
in case the execution was asynchronous, in which
case the caller needs to wait for the result to be
signaled by the provided callback, or Right(a)
in case
the result is available immediately (without further
async execution)
Type-class describing
F[_]
data types capable of executing asynchronous computations that produce a single result.