Packages

trait Async[F[_]] extends AsyncPlatform[F] with Sync[F] with Temporal[F]

A typeclass that encodes the notion of suspending asynchronous side effects in the F[_] context

An asynchronous task is one whose results are computed somewhere else (eg by a scala.concurrent.Future running on some other threadpool). We await the results of that execution by giving it a callback to be invoked with the result.

That computation may fail hence the callback is of type Either[Throwable, A] => (). This awaiting is semantic only - no threads are blocked, the current fiber is simply descheduled until the callback completes.

This leads us directly to the simplest asynchronous FFI

def async_[A](k: (Either[Throwable, A] => Unit) => Unit): F[A]
async(k)

is semantically blocked until the callback is invoked.

async_ is somewhat constrained however. We can't perform any F[_] effects in the process of registering the callback and we also can't register a finalizer to eg cancel the asynchronous task in the event that the fiber running async_ is canceled.

This leads us directly to the more general asynchronous FFI

def async[A](k: (Either[Throwable, A] => Unit) => F[Option[F[Unit]]]): F[A]

As evidenced by the type signature, k may perform F[_] effects and it returns an Option[F[Unit]] which is an optional finalizer to be run in the event that the fiber running

async(k)

is canceled.

Source
Async.scala
Linear Supertypes
GenTemporal[F, Throwable], GenConcurrent[F, Throwable], GenSpawn[F, Throwable], Sync[F], Defer[F], Unique[F], Clock[F], ClockPlatform[F], MonadCancel[F, Throwable], MonadError[F, Throwable], Monad[F], FlatMap[F], FlatMapArityFunctions[F], ApplicativeError[F, Throwable], Applicative[F], InvariantMonoidal[F], Apply[F], ApplyArityFunctions[F], InvariantSemigroupal[F], Semigroupal[F], Functor[F], Invariant[F], AsyncPlatform[F], Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Async
  2. GenTemporal
  3. GenConcurrent
  4. GenSpawn
  5. Sync
  6. Defer
  7. Unique
  8. Clock
  9. ClockPlatform
  10. MonadCancel
  11. MonadError
  12. Monad
  13. FlatMap
  14. FlatMapArityFunctions
  15. ApplicativeError
  16. Applicative
  17. InvariantMonoidal
  18. Apply
  19. ApplyArityFunctions
  20. InvariantSemigroupal
  21. Semigroupal
  22. Functor
  23. Invariant
  24. AsyncPlatform
  25. Serializable
  26. AnyRef
  27. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def canceled: F[Unit]

    An effect that requests self-cancelation on the current fiber.

    An effect that requests self-cancelation on the current fiber.

    canceled has a return type of F[Unit] instead of F[Nothing] due to execution continuing in a masked region. In the following example, the fiber requests self-cancelation in a masked region, so cancelation is suppressed until the fiber is completely unmasked. fa will run but fb will not. If canceled had a return type of F[Nothing], then it would not be possible to continue execution to fa (there would be no Nothing value to pass to the flatMap).

    F.uncancelable { _ =>
      F.canceled *> fa
    } *> fb
    Definition Classes
    MonadCancel
  2. abstract def cede: F[Unit]

    Introduces a fairness boundary that yields control back to the scheduler of the runtime system.

    Introduces a fairness boundary that yields control back to the scheduler of the runtime system. This allows the carrier thread to resume execution of another waiting fiber.

    This function is primarily useful when performing long-running computation that is outside of the monadic context. For example:

    fa.map(data => expensiveWork(data))

    In the above, we're assuming that expensiveWork is a function which is entirely compute-bound but very long-running. A good rule of thumb is to consider a function "expensive" when its runtime is around three or more orders of magnitude higher than the overhead of the map function itself (which runs in around 5 nanoseconds on modern hardware). Thus, any expensiveWork function which requires around 10 microseconds or longer to execute should be considered "long-running".

    The danger is that these types of long-running actions outside of the monadic context can result in degraded fairness properties. The solution is to add an explicit cede both before and after the expensive operation:

    (fa <* F.cede).map(data => expensiveWork(data)).guarantee(F.cede)

    Note that extremely long-running expensiveWork functions can still cause fairness issues, even when used with cede. This problem is somewhat fundamental to the nature of scheduling such computation on carrier threads. Whenever possible, it is best to break apart any such functions into multiple pieces invoked independently (e.g. via chained map calls) whenever the execution time exceeds five or six orders of magnitude beyond the overhead of map itself (around 1 millisecond on most hardware).

    Note that cede is merely a hint to the runtime system; implementations have the liberty to interpret this method to their liking as long as it obeys the respective laws. For example, a lawful, but atypical, implementation of this function is F.unit, in which case the fairness boundary is a no-op.

    Definition Classes
    GenSpawn
  3. abstract def cont[K, R](body: Cont[F, K, R]): F[R]
  4. abstract def deferred[A]: F[Deferred[F, A]]
    Definition Classes
    GenConcurrent
  5. abstract def evalOn[A](fa: F[A], ec: ExecutionContext): F[A]

    Shift execution of the effect fa to the execution context ec.

    Shift execution of the effect fa to the execution context ec. Execution is shifted back to the previous execution context when fa completes.

    evalOn(executionContext, ec) <-> pure(ec)

  6. abstract def executionContext: F[ExecutionContext]

    Obtain a reference to the current execution context.

  7. abstract def flatMap[A, B](fa: F[A])(f: (A) => F[B]): F[B]
    Definition Classes
    FlatMap
  8. abstract def forceR[A, B](fa: F[A])(fb: F[B]): F[B]

    Analogous to productR, but suppresses short-circuiting behavior except for cancelation.

    Analogous to productR, but suppresses short-circuiting behavior except for cancelation.

    Definition Classes
    MonadCancel
  9. abstract def handleErrorWith[A](fa: F[A])(f: (Throwable) => F[A]): F[A]
    Definition Classes
    ApplicativeError
  10. abstract def monotonic: F[FiniteDuration]

    Monotonic time subject to the law that (monotonic, monotonic).mapN(_ <= _)

    Monotonic time subject to the law that (monotonic, monotonic).mapN(_ <= _)

    Analogous to java.lang.System.nanoTime.

    Definition Classes
    Clock
  11. abstract def onCancel[A](fa: F[A], fin: F[Unit]): F[A]

    Registers a finalizer that is invoked if cancelation is observed during the evaluation of fa.

    Registers a finalizer that is invoked if cancelation is observed during the evaluation of fa. If the evaluation of fa completes without encountering a cancelation, the finalizer is unregistered before proceeding.

    Note that if fa is uncancelable (e.g. created via uncancelable) then fin won't be fired.

    F.onCancel(F.uncancelable(_ => F.canceled), fin) <-> F.unit

    During finalization, all actively registered finalizers are run exactly once. The order by which finalizers are run is dictated by nesting: innermost finalizers are run before outermost finalizers. For example, in the following program, the finalizer f1 is run before the finalizer f2:

    F.onCancel(F.onCancel(F.canceled, f1), f2)

    If a finalizer throws an error during evaluation, the error is suppressed, and implementations may choose to report it via a side channel. Finalizers are always uncancelable, so cannot otherwise be interrupted.

    fa

    The effect that is evaluated after fin is registered.

    fin

    The finalizer to register before evaluating fa.

    Definition Classes
    MonadCancel
  12. abstract def pure[A](x: A): F[A]
    Definition Classes
    Applicative
  13. abstract def raiseError[A](e: Throwable): F[A]
    Definition Classes
    ApplicativeError
  14. abstract def realTime: F[FiniteDuration]

    A representation of the current system time

    A representation of the current system time

    Analogous to java.lang.System.currentTimeMillis.

    Definition Classes
    Clock
  15. abstract def ref[A](a: A): F[Ref[F, A]]
    Definition Classes
    GenConcurrent
  16. abstract def sleep(time: FiniteDuration): F[Unit]
    Attributes
    protected
    Definition Classes
    GenTemporal
  17. abstract def start[A](fa: F[A]): F[Fiber[F, Throwable, A]]

    A low-level primitive for starting the concurrent evaluation of a fiber.

    A low-level primitive for starting the concurrent evaluation of a fiber. Returns a Fiber that can be used to wait for a fiber or cancel it.

    start is a cancelation-unsafe function; it is recommended to use the safer variant, background, to spawn fibers.

    fa

    the effect for the fiber

    Definition Classes
    GenSpawn
    See also

    background for the safer, recommended variant

  18. abstract def suspend[A](hint: Type)(thunk: => A): F[A]
    Definition Classes
    Sync
  19. abstract def tailRecM[A, B](a: A)(f: (A) => F[Either[A, B]]): F[B]
    Definition Classes
    FlatMap
  20. abstract def uncancelable[A](body: (Poll[F]) => F[A]): F[A]

    Masks cancelation on the current fiber.

    Masks cancelation on the current fiber. The argument to body of type Poll[F] is a natural transformation F ~> F that enables polling. Polling causes a fiber to unmask within a masked region so that cancelation can be observed again.

    In the following example, cancelation can be observed only within fb and nowhere else:

    F.uncancelable { poll =>
      fa *> poll(fb) *> fc
    }

    If a fiber is canceled while it is masked, the cancelation is suppressed for as long as the fiber remains masked. Whenever the fiber is completely unmasked again, the cancelation will be respected.

    Masks can also be stacked or nested within each other. If multiple masks are active, all masks must be undone so that cancelation can be observed. In order to completely unmask within a multi-masked region the poll corresponding to each mask must be applied to the effect, outermost-first.

    F.uncancelable { p1 =>
      F.uncancelable { p2 =>
        fa *> p2(p1(fb)) *> fc
      }
    }

    The following operations are no-ops:

    1. Polling in the wrong order
    2. Subsequent polls when applying the same poll more than once: poll(poll(fa)) is equivalent to poll(fa)
    3. Applying a poll bound to one fiber within another fiber
    body

    A function which takes a Poll and returns the effect that we wish to make uncancelable.

    Definition Classes
    MonadCancel

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def *>[A, B](fa: F[A])(fb: F[B]): F[B]
    Definition Classes
    Apply
    Annotations
    @inline()
  4. final def <*[A, B](fa: F[A])(fb: F[B]): F[A]
    Definition Classes
    Apply
    Annotations
    @inline()
  5. final def <*>[A, B](ff: F[(A) => B])(fa: F[A]): F[B]
    Definition Classes
    Apply
    Annotations
    @inline()
  6. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  7. def adaptError[A](fa: F[A])(pf: PartialFunction[Throwable, Throwable]): F[A]
    Definition Classes
    MonadError → ApplicativeError
  8. def andWait[A](fa: F[A], time: FiniteDuration): F[A]
    Attributes
    protected
    Definition Classes
    GenTemporal
  9. def andWait[A](fa: F[A], time: Duration): F[A]

    Wait for the specified duration after the execution of fa before returning the result.

    Wait for the specified duration after the execution of fa before returning the result.

    fa

    The effect to execute

    time

    The duration to wait after executing fa

    Definition Classes
    GenTemporal
  10. def ap[A, B](ff: F[(A) => B])(fa: F[A]): F[B]
    Definition Classes
    FlatMap → Apply
  11. def ap10[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9]): F[Z]
    Definition Classes
    ApplyArityFunctions
  12. def ap11[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10]): F[Z]
    Definition Classes
    ApplyArityFunctions
  13. def ap12[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11]): F[Z]
    Definition Classes
    ApplyArityFunctions
  14. def ap13[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12]): F[Z]
    Definition Classes
    ApplyArityFunctions
  15. def ap14[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13]): F[Z]
    Definition Classes
    ApplyArityFunctions
  16. def ap15[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14]): F[Z]
    Definition Classes
    ApplyArityFunctions
  17. def ap16[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15]): F[Z]
    Definition Classes
    ApplyArityFunctions
  18. def ap17[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16]): F[Z]
    Definition Classes
    ApplyArityFunctions
  19. def ap18[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17]): F[Z]
    Definition Classes
    ApplyArityFunctions
  20. def ap19[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18]): F[Z]
    Definition Classes
    ApplyArityFunctions
  21. def ap2[A, B, Z](ff: F[(A, B) => Z])(fa: F[A], fb: F[B]): F[Z]
    Definition Classes
    FlatMap → Apply
  22. def ap20[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19]): F[Z]
    Definition Classes
    ApplyArityFunctions
  23. def ap21[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19], f20: F[A20]): F[Z]
    Definition Classes
    ApplyArityFunctions
  24. def ap22[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19], f20: F[A20], f21: F[A21]): F[Z]
    Definition Classes
    ApplyArityFunctions
  25. def ap3[A0, A1, A2, Z](f: F[(A0, A1, A2) => Z])(f0: F[A0], f1: F[A1], f2: F[A2]): F[Z]
    Definition Classes
    ApplyArityFunctions
  26. def ap4[A0, A1, A2, A3, Z](f: F[(A0, A1, A2, A3) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3]): F[Z]
    Definition Classes
    ApplyArityFunctions
  27. def ap5[A0, A1, A2, A3, A4, Z](f: F[(A0, A1, A2, A3, A4) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4]): F[Z]
    Definition Classes
    ApplyArityFunctions
  28. def ap6[A0, A1, A2, A3, A4, A5, Z](f: F[(A0, A1, A2, A3, A4, A5) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5]): F[Z]
    Definition Classes
    ApplyArityFunctions
  29. def ap7[A0, A1, A2, A3, A4, A5, A6, Z](f: F[(A0, A1, A2, A3, A4, A5, A6) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6]): F[Z]
    Definition Classes
    ApplyArityFunctions
  30. def ap8[A0, A1, A2, A3, A4, A5, A6, A7, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7]): F[Z]
    Definition Classes
    ApplyArityFunctions
  31. def ap9[A0, A1, A2, A3, A4, A5, A6, A7, A8, Z](f: F[(A0, A1, A2, A3, A4, A5, A6, A7, A8) => Z])(f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8]): F[Z]
    Definition Classes
    ApplyArityFunctions
  32. def applicative: Applicative[F]
    Definition Classes
    GenTemporalClockGenSpawnUnique
  33. def as[A, B](fa: F[A], b: B): F[B]
    Definition Classes
    Functor
  34. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  35. def async[A](k: ((Either[Throwable, A]) => Unit) => F[Option[F[Unit]]]): F[A]

    Suspends an asynchronous side effect in F.

    Suspends an asynchronous side effect in F.

    The given function k will be invoked during evaluation of the F to "schedule" the asynchronous callback, where the callback of type Either[Throwable, A] => Unit is the parameter passed to that function. Only the first invocation of the callback will be effective! All subsequent invocations will be silently dropped.

    The process of registering the callback itself is suspended in F (the outer F of F[Option[F[Unit]]]).

    The effect returns Option[F[Unit]] which is an optional finalizer to be run in the event that the fiber running async(k) is canceled.

    Also, note that async is uncancelable during its registration.

    See also

    async_ for a simplified variant without a finalizer

    asyncCheckAttempt for more generic version with option of providing immediate result of computation

  36. def asyncCheckAttempt[A](k: ((Either[Throwable, A]) => Unit) => F[Either[Option[F[Unit]], A]]): F[A]

    Suspends an asynchronous side effect with optional immediate result in F.

    Suspends an asynchronous side effect with optional immediate result in F.

    The given function k will be invoked during evaluation of F to:

    • check if result is already available;
    • "schedule" the asynchronous callback, where the callback of type Either[Throwable, A] \=> Unit is the parameter passed to that function. Only the first invocation of the callback will be effective! All subsequent invocations will be silently dropped.

    The process of registering the callback itself is suspended in F (the outer F of F[Either[Option[F[Unit]], A]]).

    The effect returns Either[Option[F[Unit]], A] where:

    • right side A is an immediate result of computation (callback invocation will be dropped);
    • left side Option[F[Unit]] is an optional finalizer to be run in the event that the fiber running asyncCheckAttempt(k) is canceled.

    Also, note that asyncCheckAttempt is uncancelable during its registration.

    See also

    async for a simplified variant without an option for immediate result

    async_ for a simplified variant without an option for immediate result or finalizer

  37. def async_[A](k: ((Either[Throwable, A]) => Unit) => Unit): F[A]

    Suspends an asynchronous side effect in F.

    Suspends an asynchronous side effect in F.

    The given function k will be invoked during evaluation of the F to "schedule" the asynchronous callback, where the callback is the parameter passed to that function. Only the first invocation of the callback will be effective! All subsequent invocations will be silently dropped.

    This function can be thought of as a safer, lexically-constrained version of Promise, where IO is like a safer, lazy version of Future.

    Also, note that async_ is uncancelable during its registration.

    See also

    async for more generic version providing a finalizer

    asyncCheckAttempt for more generic version with option of providing immediate result of computation and finalizer

  38. def attempt[A](fa: F[A]): F[Either[Throwable, A]]
    Definition Classes
    ApplicativeError
  39. def attemptNarrow[EE <: Throwable, A](fa: F[A])(implicit tag: ClassTag[EE], ev: <:<[EE, Throwable]): F[Either[EE, A]]
    Definition Classes
    ApplicativeError
  40. def attemptT[A](fa: F[A]): EitherT[F, Throwable, A]
    Definition Classes
    ApplicativeError
  41. def attemptTap[A, B](fa: F[A])(f: (Either[Throwable, A]) => F[B]): F[A]
    Definition Classes
    MonadError
  42. def background[A](fa: F[A]): Resource[F, F[Outcome[F, Throwable, A]]]

    Returns a Resource that manages the concurrent execution of a fiber.

    Returns a Resource that manages the concurrent execution of a fiber. The inner effect can be used to wait on the outcome of the child fiber; it is effectively a join.

    The child fiber is canceled in two cases: either the resource goes out of scope or the parent fiber is canceled. If the child fiber terminates before one of these cases occurs, then cancelation is a no-op. This avoids fiber leaks because the child fiber is always canceled before the parent fiber drops the reference to it.

    // Starts a fiber that continously prints "A".
    // After 10 seconds, the resource scope exits so the fiber is canceled.
    F.background(F.delay(println("A")).foreverM).use { _ =>
      F.sleep(10.seconds)
    }
    fa

    the effect for the spawned fiber

    Definition Classes
    GenSpawn
  43. def backgroundOn[A](fa: F[A], ec: ExecutionContext): Resource[F, F[Outcome[F, Throwable, A]]]

    Start a new background fiber on a different execution context.

    Start a new background fiber on a different execution context.

    See GenSpawn.background for more details.

  44. def blocking[A](thunk: => A): F[A]

    Like Sync.delay but intended for thread blocking operations.

    Like Sync.delay but intended for thread blocking operations. blocking will shift the execution of the blocking operation to a separate threadpool to avoid blocking on the main execution context. See the thread-model documentation for more information on why this is necessary. Note that the created effect will be uncancelable; if you need cancelation then you should use Sync.interruptible or Sync.interruptibleMany.

    Sync[F].blocking(scala.io.Source.fromFile("path").mkString)
    thunk

    The side effect which is to be suspended in F[_] and evaluated on a blocking execution context

    Definition Classes
    Sync
  45. def both[A, B](fa: F[A], fb: F[B]): F[(A, B)]

    Races the evaluation of two fibers and returns the result of both.

    Races the evaluation of two fibers and returns the result of both.

    The following rules describe the semantics of both:

    1. If the winner completes with Outcome.Succeeded, the race waits for the loser to complete. 2. If the winner completes with Outcome.Errored, the race raises the error. The loser is canceled. 3. If the winner completes with Outcome.Canceled, the loser and the race are canceled as well. 4. If the loser completes with Outcome.Succeeded, the race returns the successful value of both fibers. 5. If the loser completes with Outcome.Errored, the race returns the error. 6. If the loser completes with Outcome.Canceled, the race is canceled. 7. If the race is canceled before one or both participants complete, then whichever ones are incomplete are canceled. 8. If the race is masked and is canceled because one or both participants canceled, the fiber will block indefinitely.
    fa

    the effect for the first racing fiber

    fb

    the effect for the second racing fiber

    Definition Classes
    GenSpawn
    See also

    bothOutcome for a variant that returns the Outcome of both fibers.

  46. def bothOutcome[A, B](fa: F[A], fb: F[B]): F[(Outcome[F, Throwable, A], Outcome[F, Throwable, B])]

    Races the evaluation of two fibers and returns the Outcome of both.

    Races the evaluation of two fibers and returns the Outcome of both. If the race is canceled before one or both participants complete, then then whichever ones are incomplete are canceled.

    fa

    the effect for the first racing fiber

    fb

    the effect for the second racing fiber

    Definition Classes
    GenSpawn
    See also

    both for a simpler variant that returns the results of both fibers.

  47. def bracket[A, B](acquire: F[A])(use: (A) => F[B])(release: (A) => F[Unit]): F[B]

    A pattern for safely interacting with effectful lifecycles.

    A pattern for safely interacting with effectful lifecycles.

    If acquire completes successfully, use is called. If use succeeds, fails, or is canceled, release is guaranteed to be called exactly once.

    acquire is uncancelable. release is uncancelable. use is cancelable by default, but can be masked.

    acquire

    the lifecycle acquisition action

    use

    the effect to which the lifecycle is scoped, whose result is the return value of this function

    release

    the lifecycle release action

    Definition Classes
    MonadCancel
    See also

    bracketCase for a more powerful variant

    Resource for a composable datatype encoding of effectful lifecycles

  48. def bracketCase[A, B](acquire: F[A])(use: (A) => F[B])(release: (A, Outcome[F, Throwable, B]) => F[Unit]): F[B]

    A pattern for safely interacting with effectful lifecycles.

    A pattern for safely interacting with effectful lifecycles.

    If acquire completes successfully, use is called. If use succeeds, fails, or is canceled, release is guaranteed to be called exactly once.

    acquire is uncancelable. release is uncancelable. use is cancelable by default, but can be masked.

    acquire

    the lifecycle acquisition action

    use

    the effect to which the lifecycle is scoped, whose result is the return value of this function

    release

    the lifecycle release action which depends on the outcome of use

    Definition Classes
    MonadCancel
    See also

    bracketFull for a more powerful variant

    Resource for a composable datatype encoding of effectful lifecycles

  49. def bracketFull[A, B](acquire: (Poll[F]) => F[A])(use: (A) => F[B])(release: (A, Outcome[F, Throwable, B]) => F[Unit]): F[B]

    A pattern for safely interacting with effectful lifecycles.

    A pattern for safely interacting with effectful lifecycles.

    If acquire completes successfully, use is called. If use succeeds, fails, or is canceled, release is guaranteed to be called exactly once.

    If use succeeds the returned value B is returned. If use returns an exception, the exception is returned.

    acquire is uncancelable by default, but can be unmasked. release is uncancelable. use is cancelable by default, but can be masked.

    acquire

    the lifecycle acquisition action which can be canceled

    use

    the effect to which the lifecycle is scoped, whose result is the return value of this function

    release

    the lifecycle release action which depends on the outcome of use

    Definition Classes
    MonadCancel
  50. def cachedRealTime(ttl: Duration): F[F[FiniteDuration]]

    Returns a nested effect which returns the time in a much faster way than Clock[F]#realTime.

    Returns a nested effect which returns the time in a much faster way than Clock[F]#realTime. This is achieved by caching the real time when the outer effect is run and, when the inner effect is run, the offset is used in combination with Clock[F]#monotonic to give an approximation of the real time. The practical benefit of this is a reduction in the number of syscalls, since realTime will only be sequenced once per ttl window, and it tends to be (on most platforms) multiple orders of magnitude slower than monotonic.

    This should generally be used in situations where precise "to the millisecond" alignment to the system real clock is not needed. In particular, if the system clock is updated (e.g. via an NTP sync), the inner effect will not observe that update until up to ttl. This is an acceptable tradeoff in most practical scenarios, particularly with frequent sequencing of the inner effect.

    ttl

    The period of time after which the cached real time will be refreshed. Note that it will only be refreshed upon execution of the nested effect

    Definition Classes
    GenTemporal
  51. def cancelable[A](fa: F[A], fin: F[Unit]): F[A]

    Given an effect which might be uncancelable and a finalizer, produce an effect which can be canceled by running the finalizer.

    Given an effect which might be uncancelable and a finalizer, produce an effect which can be canceled by running the finalizer. This combinator is useful for handling scenarios in which an effect is inherently uncancelable but may be canceled through setting some external state. A trivial example of this might be the following (assuming an Async instance):

    val flag = new AtomicBoolean(false)
    val fa = F blocking {
      while (!flag.get()) {
        Thread.sleep(10)
      }
    }
    
    F.cancelable(fa, F.delay(flag.set(true)))

    Without cancelable, effects constructed by blocking, delay, and similar are inherently uncancelable. Simply adding an onCancel to such effects is insufficient to resolve this, despite the fact that under *some* circumstances (such as the above), it is possible to enrich an otherwise-uncancelable effect with early termination. cancelable addresses this use-case.

    Note that there is no free lunch here. If an effect truly cannot be prematurely terminated, cancelable will not allow for cancelation. As an example, if you attempt to cancel uncancelable(_ => never), the cancelation will hang forever (in other words, it will be itself equivalent to never). Applying cancelable will not change this in any way. Thus, attempting to cancel cancelable(uncancelable(_ => never), unit) will also hang forever. As in all cases, cancelation will only return when all finalizers have run and the fiber has fully terminated.

    If fa self-cancels and the cancelable itself is uncancelable, the resulting fiber will be equal to never (similar to race). Under normal circumstances, if fa self-cancels, that cancelation will be propagated to the calling context.

    fa

    the effect to be canceled

    fin

    an effect which orchestrates some external state which terminates fa

    Definition Classes
    GenSpawn
    See also

    uncancelable

    onCancel

  52. def catchNonFatal[A](a: => A)(implicit ev: <:<[Throwable, Throwable]): F[A]
    Definition Classes
    ApplicativeError
  53. def catchNonFatalEval[A](a: Eval[A])(implicit ev: <:<[Throwable, Throwable]): F[A]
    Definition Classes
    ApplicativeError
  54. def catchOnly[T >: Null <: Throwable]: CatchOnlyPartiallyApplied[T, F, Throwable]
    Definition Classes
    ApplicativeError
  55. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  56. def compose[G[_]](implicit arg0: Applicative[G]): Applicative[[α]F[G[α]]]
    Definition Classes
    Applicative
  57. def compose[G[_]](implicit arg0: Apply[G]): Apply[[α]F[G[α]]]
    Definition Classes
    Apply
  58. def compose[G[_]](implicit arg0: Functor[G]): Functor[[α]F[G[α]]]
    Definition Classes
    Functor
  59. def compose[G[_]](implicit arg0: Invariant[G]): Invariant[[α]F[G[α]]]
    Definition Classes
    Invariant
  60. def composeApply[G[_]](implicit arg0: Apply[G]): InvariantSemigroupal[[α]F[G[α]]]
    Definition Classes
    InvariantSemigroupal
  61. def composeContravariant[G[_]](implicit arg0: Contravariant[G]): Contravariant[[α]F[G[α]]]
    Definition Classes
    Functor → Invariant
  62. def composeContravariantMonoidal[G[_]](implicit arg0: ContravariantMonoidal[G]): ContravariantMonoidal[[α]F[G[α]]]
    Definition Classes
    Applicative
  63. def composeFunctor[G[_]](implicit arg0: Functor[G]): Invariant[[α]F[G[α]]]
    Definition Classes
    Invariant
  64. def defer[A](thunk: => F[A]): F[A]

    Suspends the evaluation of an F[_] reference.

    Suspends the evaluation of an F[_] reference.

    Equivalent to FlatMap.flatten for pure expressions, the purpose of this function is to suspend side effects in F[_].

    Definition Classes
    Sync → Defer
  65. def delay[A](thunk: => A): F[A]

    The synchronous FFI - lifts any by-name parameter into the F[_] context.

    The synchronous FFI - lifts any by-name parameter into the F[_] context.

    Equivalent to Applicative.pure for pure expressions, the purpose of this function is to suspend side effects in F. Use Sync.delay if your side effect is not thread-blocking; otherwise you should use Sync.blocking (uncancelable) or Sync.interruptible (cancelable).

    thunk

    The side effect which is to be suspended in F[_]

    Definition Classes
    Sync
  66. def delayBy[A](fa: F[A], time: FiniteDuration): F[A]
    Attributes
    protected
    Definition Classes
    GenTemporal
  67. def delayBy[A](fa: F[A], time: Duration): F[A]

    Delay the execution of fa by a given duration.

    Delay the execution of fa by a given duration.

    fa

    The effect to execute

    time

    The duration to wait before executing fa

    Definition Classes
    GenTemporal
  68. def ensure[A](fa: F[A])(error: => Throwable)(predicate: (A) => Boolean): F[A]
    Definition Classes
    MonadError
  69. def ensureOr[A](fa: F[A])(error: (A) => Throwable)(predicate: (A) => Boolean): F[A]
    Definition Classes
    MonadError
  70. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  71. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  72. def evalOnK(ec: ExecutionContext): ~>[F, F]

    Async.evalOn as a natural transformation.

  73. def executor: F[Executor]

    Obtain a reference to the current execution context as a java.util.concurrent.Executor.

  74. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  75. def fix[A](fn: (F[A]) => F[A]): F[A]
    Definition Classes
    Defer
  76. def flatMap10[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  77. def flatMap11[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  78. def flatMap12[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  79. def flatMap13[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  80. def flatMap14[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  81. def flatMap15[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  82. def flatMap16[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  83. def flatMap17[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  84. def flatMap18[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  85. def flatMap19[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  86. def flatMap2[A0, A1, Z](f0: F[A0], f1: F[A1])(f: (A0, A1) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  87. def flatMap20[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  88. def flatMap21[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19], f20: F[A20])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  89. def flatMap22[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19], f20: F[A20], f21: F[A21])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  90. def flatMap3[A0, A1, A2, Z](f0: F[A0], f1: F[A1], f2: F[A2])(f: (A0, A1, A2) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  91. def flatMap4[A0, A1, A2, A3, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3])(f: (A0, A1, A2, A3) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  92. def flatMap5[A0, A1, A2, A3, A4, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4])(f: (A0, A1, A2, A3, A4) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  93. def flatMap6[A0, A1, A2, A3, A4, A5, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5])(f: (A0, A1, A2, A3, A4, A5) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  94. def flatMap7[A0, A1, A2, A3, A4, A5, A6, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6])(f: (A0, A1, A2, A3, A4, A5, A6) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  95. def flatMap8[A0, A1, A2, A3, A4, A5, A6, A7, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7])(f: (A0, A1, A2, A3, A4, A5, A6, A7) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  96. def flatMap9[A0, A1, A2, A3, A4, A5, A6, A7, A8, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8) => F[Z]): F[Z]
    Definition Classes
    FlatMapArityFunctions
  97. def flatTap[A, B](fa: F[A])(f: (A) => F[B]): F[A]
    Definition Classes
    FlatMap
  98. def flatten[A](ffa: F[F[A]]): F[A]
    Definition Classes
    FlatMap
  99. final def fmap[A, B](fa: F[A])(f: (A) => B): F[B]
    Definition Classes
    Functor
  100. def foreverM[A, B](fa: F[A]): F[B]
    Definition Classes
    FlatMap
  101. def fproduct[A, B](fa: F[A])(f: (A) => B): F[(A, B)]
    Definition Classes
    Functor
  102. def fproductLeft[A, B](fa: F[A])(f: (A) => B): F[(B, A)]
    Definition Classes
    Functor
  103. def fromCompletableFuture[A](fut: F[CompletableFuture[A]]): F[A]

    Suspend a java.util.concurrent.CompletableFuture into the F[_] context.

    Suspend a java.util.concurrent.CompletableFuture into the F[_] context.

    fut

    The java.util.concurrent.CompletableFuture to suspend in F[_]

    Definition Classes
    AsyncPlatform
    Note

    Cancelation is cooperative and it is up to the CompletableFuture to respond to the request by handling cancelation appropriately and indicating that it has done so. This means that if the CompletableFuture indicates that it did not cancel, there will be no "fire-and-forget" semantics. Instead, to satisfy backpressure guarantees, the CompletableFuture will be treated as if it is uncancelable and the fiber will fallback to waiting for it to complete.

  104. def fromCompletionStage[A](completionStage: F[CompletionStage[A]]): F[A]
    Definition Classes
    AsyncPlatform
  105. def fromEither[A](x: Either[Throwable, A]): F[A]
    Definition Classes
    ApplicativeError
  106. def fromFuture[A](fut: F[Future[A]]): F[A]

    Lifts a scala.concurrent.Future into an F effect.

    Lifts a scala.concurrent.Future into an F effect.

    See also

    fromFutureCancelable for a cancelable version

  107. def fromFutureCancelable[A](futCancel: F[(Future[A], F[Unit])]): F[A]

    Like fromFuture, but is cancelable via the provided finalizer.

  108. def fromOption[A](oa: Option[A], ifEmpty: => Throwable): F[A]
    Definition Classes
    ApplicativeError
  109. def fromTry[A](t: Try[A])(implicit ev: <:<[Throwable, Throwable]): F[A]
    Definition Classes
    ApplicativeError
  110. def fromValidated[A](x: Validated[Throwable, A]): F[A]
    Definition Classes
    ApplicativeError
  111. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  112. def guarantee[A](fa: F[A], fin: F[Unit]): F[A]

    Specifies an effect that is always invoked after evaluation of fa completes, regardless of the outcome.

    Specifies an effect that is always invoked after evaluation of fa completes, regardless of the outcome.

    This function can be thought of as a combination of flatTap, onError, and onCancel.

    fa

    The effect that is run after fin is registered.

    fin

    The effect to run in the event of a cancelation or error.

    Definition Classes
    MonadCancel
    See also

    guaranteeCase for a more powerful variant

    Outcome for the various outcomes of evaluation

  113. def guaranteeCase[A](fa: F[A])(fin: (Outcome[F, Throwable, A]) => F[Unit]): F[A]

    Specifies an effect that is always invoked after evaluation of fa completes, but depends on the outcome.

    Specifies an effect that is always invoked after evaluation of fa completes, but depends on the outcome.

    This function can be thought of as a combination of flatTap, onError, and onCancel.

    fa

    The effect that is run after fin is registered.

    fin

    A function that returns the effect to run based on the outcome.

    Definition Classes
    MonadCancel
    See also

    bracketCase for a more powerful variant

    Outcome for the various outcomes of evaluation

  114. def handleError[A](fa: F[A])(f: (Throwable) => A): F[A]
    Definition Classes
    ApplicativeError
  115. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  116. def ifElseM[A](branches: (F[Boolean], F[A])*)(els: F[A]): F[A]
    Definition Classes
    Monad
  117. def ifF[A](fb: F[Boolean])(ifTrue: => A, ifFalse: => A): F[A]
    Definition Classes
    Functor
  118. def ifM[B](fa: F[Boolean])(ifTrue: => F[B], ifFalse: => F[B]): F[B]
    Definition Classes
    FlatMap
  119. def imap[A, B](fa: F[A])(f: (A) => B)(g: (B) => A): F[B]
    Definition Classes
    Functor → Invariant
  120. def interruptible[A](thunk: => A): F[A]

    Like Sync.blocking but will attempt to abort the blocking operation using thread interrupts in the event of cancelation.

    Like Sync.blocking but will attempt to abort the blocking operation using thread interrupts in the event of cancelation. The interrupt will be attempted only once.

    thunk

    The side effect which is to be suspended in F[_] and evaluated on a blocking execution context

    Definition Classes
    Sync
  121. def interruptibleMany[A](thunk: => A): F[A]

    Like Sync.blocking but will attempt to abort the blocking operation using thread interrupts in the event of cancelation.

    Like Sync.blocking but will attempt to abort the blocking operation using thread interrupts in the event of cancelation. The interrupt will be attempted repeatedly until the blocking operation completes or exits.

    thunk

    The side effect which is to be suspended in F[_] and evaluated on a blocking execution context

    Definition Classes
    Sync
    Note

    that this _really_ means what it says - it will throw exceptions in a tight loop until the offending blocking operation exits. This is extremely expensive if it happens on a hot path and the blocking operation is badly behaved and doesn't exit immediately.

  122. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  123. def iterateForeverM[A, B](a: A)(f: (A) => F[A]): F[B]
    Definition Classes
    FlatMap
  124. def iterateUntil[A](f: F[A])(p: (A) => Boolean): F[A]
    Definition Classes
    Monad
  125. def iterateUntilM[A](init: A)(f: (A) => F[A])(p: (A) => Boolean): F[A]
    Definition Classes
    Monad
  126. def iterateWhile[A](f: F[A])(p: (A) => Boolean): F[A]
    Definition Classes
    Monad
  127. def iterateWhileM[A](init: A)(f: (A) => F[A])(p: (A) => Boolean): F[A]
    Definition Classes
    Monad
  128. def lift[A, B](f: (A) => B): (F[A]) => F[B]
    Definition Classes
    Functor
  129. def map[A, B](fa: F[A])(f: (A) => B): F[B]
    Definition Classes
    Monad → Applicative → Functor
  130. def map10[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  131. def map11[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  132. def map12[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  133. def map13[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  134. def map14[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  135. def map15[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  136. def map16[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  137. def map17[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  138. def map18[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  139. def map19[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  140. def map2[A, B, Z](fa: F[A], fb: F[B])(f: (A, B) => Z): F[Z]
    Definition Classes
    FlatMap → Apply
  141. def map20[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  142. def map21[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19], f20: F[A20])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  143. def map22[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19], f20: F[A20], f21: F[A21])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  144. def map2Eval[A, B, Z](fa: F[A], fb: Eval[F[B]])(f: (A, B) => Z): Eval[F[Z]]
    Definition Classes
    FlatMap → Apply
  145. def map3[A0, A1, A2, Z](f0: F[A0], f1: F[A1], f2: F[A2])(f: (A0, A1, A2) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  146. def map4[A0, A1, A2, A3, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3])(f: (A0, A1, A2, A3) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  147. def map5[A0, A1, A2, A3, A4, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4])(f: (A0, A1, A2, A3, A4) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  148. def map6[A0, A1, A2, A3, A4, A5, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5])(f: (A0, A1, A2, A3, A4, A5) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  149. def map7[A0, A1, A2, A3, A4, A5, A6, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6])(f: (A0, A1, A2, A3, A4, A5, A6) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  150. def map8[A0, A1, A2, A3, A4, A5, A6, A7, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7])(f: (A0, A1, A2, A3, A4, A5, A6, A7) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  151. def map9[A0, A1, A2, A3, A4, A5, A6, A7, A8, Z](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8) => Z): F[Z]
    Definition Classes
    ApplyArityFunctions
  152. def memoize[A](fa: F[A]): F[F[A]]

    Caches the result of fa.

    Caches the result of fa.

    The returned inner effect, hence referred to as get, when sequenced, will evaluate fa and cache the result. If get is sequenced multiple times fa will only be evaluated once.

    If all gets are canceled prior to fa completing, it will be canceled and evaluated again the next time get is sequenced.

    Definition Classes
    GenConcurrent
  153. def mproduct[A, B](fa: F[A])(f: (A) => F[B]): F[(A, B)]
    Definition Classes
    FlatMap
  154. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  155. def never[A]: F[A]

    An effect that never terminates.

    An effect that never terminates.

    Polymorphic so it can be used in situations where an arbitrary effect is expected eg Fiber.joinWithNever

    Definition Classes
    AsyncGenSpawn
  156. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  157. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  158. def onError[A](fa: F[A])(pf: PartialFunction[Throwable, F[Unit]]): F[A]
    Definition Classes
    ApplicativeError
  159. def parReplicateAN[A](n: Int)(replicas: Int, ma: F[A]): F[List[A]]

    Like Parallel.parReplicateA, but limits the degree of parallelism.

    Like Parallel.parReplicateA, but limits the degree of parallelism.

    Definition Classes
    GenConcurrent
  160. def parSequenceN[T[_], A](n: Int)(tma: T[F[A]])(implicit arg0: Traverse[T]): F[T[A]]

    Like Parallel.parSequence, but limits the degree of parallelism.

    Like Parallel.parSequence, but limits the degree of parallelism.

    Definition Classes
    GenConcurrent
  161. def parTraverseN[T[_], A, B](n: Int)(ta: T[A])(f: (A) => F[B])(implicit arg0: Traverse[T]): F[T[B]]

    Like Parallel.parTraverse, but limits the degree of parallelism.

    Like Parallel.parTraverse, but limits the degree of parallelism. Note that the semantics of this operation aim to maximise fairness: when a spot to execute becomes available, every task has a chance to claim it, and not only the next n tasks in ta

    Definition Classes
    GenConcurrent
  162. def point[A](a: A): F[A]
    Definition Classes
    InvariantMonoidal
  163. def product[A, B](fa: F[A], fb: F[B]): F[(A, B)]
    Definition Classes
    FlatMap → Apply → Semigroupal
  164. def productL[A, B](fa: F[A])(fb: F[B]): F[A]
    Definition Classes
    FlatMap → Apply
  165. def productLEval[A, B](fa: F[A])(fb: Eval[F[B]]): F[A]
    Definition Classes
    FlatMap
  166. def productR[A, B](fa: F[A])(fb: F[B]): F[B]
    Definition Classes
    FlatMap → Apply
  167. def productREval[A, B](fa: F[A])(fb: Eval[F[B]]): F[B]
    Definition Classes
    FlatMap
  168. def race[A, B](fa: F[A], fb: F[B]): F[Either[A, B]]

    Races the evaluation of two fibers that returns the result of the winner, except in the case of cancelation.

    Races the evaluation of two fibers that returns the result of the winner, except in the case of cancelation.

    The semantics of race are described by the following rules:

    1. If the winner completes with Outcome.Succeeded, the race returns the successful value. The loser is canceled before returning. 2. If the winner completes with Outcome.Errored, the race raises the error. The loser is canceled before returning. 3. If the winner completes with Outcome.Canceled, the race returns the result of the loser, consistent with the first two rules. 4. If both the winner and loser complete with Outcome.Canceled, the race is canceled. 8. If the race is masked and is canceled because both participants canceled, the fiber will block indefinitely.
    fa

    the effect for the first racing fiber

    fb

    the effect for the second racing fiber

    Definition Classes
    GenSpawn
    See also

    raceOutcome for a variant that returns the outcome of the winner.

  169. def raceOutcome[A, B](fa: F[A], fb: F[B]): F[Either[Outcome[F, Throwable, A], Outcome[F, Throwable, B]]]

    Races the evaluation of two fibers that returns the Outcome of the winner.

    Races the evaluation of two fibers that returns the Outcome of the winner. The winner of the race is considered to be the first fiber that completes with an outcome. The loser of the race is canceled before returning.

    fa

    the effect for the first racing fiber

    fb

    the effect for the second racing fiber

    Definition Classes
    GenSpawn
    See also

    race for a simpler variant that returns the successful outcome.

  170. def racePair[A, B](fa: F[A], fb: F[B]): F[Either[(Outcome[F, Throwable, A], Fiber[F, Throwable, B]), (Fiber[F, Throwable, A], Outcome[F, Throwable, B])]]

    A low-level primitive for racing the evaluation of two fibers that returns the Outcome of the winner and the Fiber of the loser.

    A low-level primitive for racing the evaluation of two fibers that returns the Outcome of the winner and the Fiber of the loser. The winner of the race is considered to be the first fiber that completes with an outcome.

    racePair is a cancelation-unsafe function; it is recommended to use the safer variants.

    fa

    the effect for the first racing fiber

    fb

    the effect for the second racing fiber

    Definition Classes
    GenConcurrentGenSpawn
    See also

    raceOutcome and race for safer race variants.

  171. def raiseUnless(cond: Boolean)(e: => Throwable): F[Unit]
    Definition Classes
    ApplicativeError
  172. def raiseWhen(cond: Boolean)(e: => Throwable): F[Unit]
    Definition Classes
    ApplicativeError
  173. def realTimeInstant: F[Instant]
    Definition Classes
    ClockPlatform
  174. def recover[A](fa: F[A])(pf: PartialFunction[Throwable, A]): F[A]
    Definition Classes
    ApplicativeError
  175. def recoverWith[A](fa: F[A])(pf: PartialFunction[Throwable, F[A]]): F[A]
    Definition Classes
    ApplicativeError
  176. def redeem[A, B](fa: F[A])(recover: (Throwable) => B, f: (A) => B): F[B]
    Definition Classes
    ApplicativeError
  177. def redeemWith[A, B](fa: F[A])(recover: (Throwable) => F[B], bind: (A) => F[B]): F[B]
    Definition Classes
    MonadError
  178. def replicateA[A](n: Int, fa: F[A]): F[List[A]]
    Definition Classes
    Applicative
  179. def replicateA_[A](n: Int, fa: F[A]): F[Unit]
    Definition Classes
    Applicative
  180. def rethrow[A, EE <: Throwable](fa: F[Either[EE, A]]): F[A]
    Definition Classes
    MonadError
  181. final def rootCancelScope: CancelScope

    Indicates the default "root scope" semantics of the F in question.

    Indicates the default "root scope" semantics of the F in question. For types which do not implement auto-cancelation, this value may be set to CancelScope.Uncancelable, which behaves as if all values F[A] are wrapped in an implicit "outer" uncancelable which cannot be polled. Most IO-like types will define this to be Cancelable.

    Definition Classes
    GenSpawnMonadCancel
  182. def sleep(time: Duration): F[Unit]

    Semantically block the fiber for the specified duration.

    Semantically block the fiber for the specified duration.

    time

    The duration to semantically block for

    Definition Classes
    GenTemporal
  183. def startOn[A](fa: F[A], ec: ExecutionContext): F[Fiber[F, Throwable, A]]

    Start a new fiber on a different execution context.

    Start a new fiber on a different execution context.

    See GenSpawn.start for more details.

  184. def syncStep[G[_], A](fa: F[A], limit: Int)(implicit G: Sync[G]): G[Either[F[A], A]]

    Translates this F[A] into a G value which, when evaluated, runs the original F to its completion, the limit number of stages, or until the first stage that cannot be expressed with Sync (typically an asynchronous boundary).

    Translates this F[A] into a G value which, when evaluated, runs the original F to its completion, the limit number of stages, or until the first stage that cannot be expressed with Sync (typically an asynchronous boundary).

    Note that syncStep is merely a hint to the runtime system; implementations have the liberty to interpret this method to their liking as long as it obeys the respective laws. For example, a lawful implementation of this function is G.pure(Left(fa)), in which case the original F[A] value is returned unchanged.

    limit

    The maximum number of stages to evaluate prior to forcibly yielding to F

    Annotations
    @nowarn()
  185. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  186. def timed[A](fa: F[A]): F[(FiniteDuration, A)]

    Returns an effect that completes with the result of the source together with the duration that it took to complete.

    Returns an effect that completes with the result of the source together with the duration that it took to complete.

    fa

    The effect which we wish to time the execution of

    Definition Classes
    Clock
  187. def timeout[A](fa: F[A], duration: FiniteDuration)(implicit ev: <:<[TimeoutException, Throwable]): F[A]
    Attributes
    protected
    Definition Classes
    GenTemporal
  188. def timeout[A](fa: F[A], duration: Duration)(implicit ev: <:<[TimeoutException, Throwable]): F[A]

    Returns an effect that either completes with the result of the source within the specified time duration or otherwise raises a TimeoutException.

    Returns an effect that either completes with the result of the source within the specified time duration or otherwise raises a TimeoutException.

    The source is canceled in the event that it takes longer than the specified time duration to complete. Once the source has been successfully canceled (and has completed its finalizers), the TimeoutException will be raised. If the source is uncancelable, the resulting effect will wait for it to complete before raising the exception.

    duration

    The time span for which we wait for the source to complete; in the event that the specified time has passed without the source completing, a TimeoutException is raised

    Definition Classes
    GenTemporal
  189. def timeoutAndForget[A](fa: F[A], duration: FiniteDuration)(implicit ev: <:<[TimeoutException, Throwable]): F[A]
    Attributes
    protected
    Definition Classes
    GenTemporal
  190. def timeoutAndForget[A](fa: F[A], duration: Duration)(implicit ev: <:<[TimeoutException, Throwable]): F[A]

    Returns an effect that either completes with the result of the source within the specified time duration or otherwise raises a TimeoutException.

    Returns an effect that either completes with the result of the source within the specified time duration or otherwise raises a TimeoutException.

    The source is canceled in the event that it takes longer than the specified time duration to complete. Unlike timeout, the cancelation of the source will be requested but not awaited, and the exception will be raised immediately upon the completion of the timer. This may more closely match intuitions about timeouts, but it also violates backpressure guarantees and intentionally leaks fibers.

    This combinator should be applied very carefully.

    duration

    The time span for which we wait for the source to complete; in the event that the specified time has passed without the source completing, a TimeoutException is raised

    Definition Classes
    GenTemporal
    See also

    timeout for a variant which respects backpressure and does not leak fibers

  191. def timeoutTo[A](fa: F[A], duration: FiniteDuration, fallback: F[A]): F[A]
    Attributes
    protected
    Definition Classes
    GenTemporal
  192. def timeoutTo[A](fa: F[A], duration: Duration, fallback: F[A]): F[A]

    Returns an effect that either completes with the result of the source within the specified time duration or otherwise evaluates the fallback.

    Returns an effect that either completes with the result of the source within the specified time duration or otherwise evaluates the fallback.

    The source is canceled in the event that it takes longer than the specified time duration to complete. Once the source has been successfully canceled (and has completed its finalizers), the fallback will be sequenced. If the source is uncancelable, the resulting effect will wait for it to complete before evaluating the fallback.

    duration

    The time span for which we wait for the source to complete; in the event that the specified time has passed without the source completing, the fallback gets evaluated

    fallback

    The task evaluated after the duration has passed and the source canceled

    Definition Classes
    GenTemporal
  193. def toString(): String
    Definition Classes
    AnyRef → Any
  194. def tuple10[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9)]
    Definition Classes
    ApplyArityFunctions
  195. def tuple11[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)]
    Definition Classes
    ApplyArityFunctions
  196. def tuple12[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)]
    Definition Classes
    ApplyArityFunctions
  197. def tuple13[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)]
    Definition Classes
    ApplyArityFunctions
  198. def tuple14[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)]
    Definition Classes
    ApplyArityFunctions
  199. def tuple15[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)]
    Definition Classes
    ApplyArityFunctions
  200. def tuple16[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)]
    Definition Classes
    ApplyArityFunctions
  201. def tuple17[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16)]
    Definition Classes
    ApplyArityFunctions
  202. def tuple18[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17)]
    Definition Classes
    ApplyArityFunctions
  203. def tuple19[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)]
    Definition Classes
    ApplyArityFunctions
  204. def tuple2[A, B](f1: F[A], f2: F[B]): F[(A, B)]
    Definition Classes
    ApplyArityFunctions
  205. def tuple20[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19)]
    Definition Classes
    ApplyArityFunctions
  206. def tuple21[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19], f20: F[A20]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20)]
    Definition Classes
    ApplyArityFunctions
  207. def tuple22[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8], f9: F[A9], f10: F[A10], f11: F[A11], f12: F[A12], f13: F[A13], f14: F[A14], f15: F[A15], f16: F[A16], f17: F[A17], f18: F[A18], f19: F[A19], f20: F[A20], f21: F[A21]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21)]
    Definition Classes
    ApplyArityFunctions
  208. def tuple3[A0, A1, A2](f0: F[A0], f1: F[A1], f2: F[A2]): F[(A0, A1, A2)]
    Definition Classes
    ApplyArityFunctions
  209. def tuple4[A0, A1, A2, A3](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3]): F[(A0, A1, A2, A3)]
    Definition Classes
    ApplyArityFunctions
  210. def tuple5[A0, A1, A2, A3, A4](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4]): F[(A0, A1, A2, A3, A4)]
    Definition Classes
    ApplyArityFunctions
  211. def tuple6[A0, A1, A2, A3, A4, A5](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5]): F[(A0, A1, A2, A3, A4, A5)]
    Definition Classes
    ApplyArityFunctions
  212. def tuple7[A0, A1, A2, A3, A4, A5, A6](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6]): F[(A0, A1, A2, A3, A4, A5, A6)]
    Definition Classes
    ApplyArityFunctions
  213. def tuple8[A0, A1, A2, A3, A4, A5, A6, A7](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7]): F[(A0, A1, A2, A3, A4, A5, A6, A7)]
    Definition Classes
    ApplyArityFunctions
  214. def tuple9[A0, A1, A2, A3, A4, A5, A6, A7, A8](f0: F[A0], f1: F[A1], f2: F[A2], f3: F[A3], f4: F[A4], f5: F[A5], f6: F[A6], f7: F[A7], f8: F[A8]): F[(A0, A1, A2, A3, A4, A5, A6, A7, A8)]
    Definition Classes
    ApplyArityFunctions
  215. def tupleLeft[A, B](fa: F[A], b: B): F[(B, A)]
    Definition Classes
    Functor
  216. def tupleRight[A, B](fa: F[A], b: B): F[(A, B)]
    Definition Classes
    Functor
  217. def unique: F[Token]

    Yields a value that is guaranteed to be unique ie (F.unique, F.unique).mapN(_ =!= _)

    Yields a value that is guaranteed to be unique ie (F.unique, F.unique).mapN(_ =!= _)

    Definition Classes
    SyncUnique
  218. def unit: F[Unit]
    Definition Classes
    Applicative → InvariantMonoidal
  219. def unlessA[A](cond: Boolean)(f: => F[A]): F[Unit]
    Definition Classes
    Applicative
  220. def untilDefinedM[A](foa: F[Option[A]]): F[A]
    Definition Classes
    FlatMap
  221. def untilM[G[_], A](f: F[A])(cond: => F[Boolean])(implicit G: Alternative[G]): F[G[A]]
    Definition Classes
    Monad
  222. def untilM_[A](f: F[A])(cond: => F[Boolean]): F[Unit]
    Definition Classes
    Monad
  223. def unzip[A, B](fab: F[(A, B)]): (F[A], F[B])
    Definition Classes
    Functor
  224. def void[A](fa: F[A]): F[Unit]
    Definition Classes
    Functor
  225. def voidError(fu: F[Unit]): F[Unit]
    Definition Classes
    ApplicativeError
  226. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  227. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  228. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  229. def whenA[A](cond: Boolean)(f: => F[A]): F[Unit]
    Definition Classes
    Applicative
  230. def whileM[G[_], A](p: F[Boolean])(body: => F[A])(implicit G: Alternative[G]): F[G[A]]
    Definition Classes
    Monad
  231. def whileM_[A](p: F[Boolean])(body: => F[A]): F[Unit]
    Definition Classes
    Monad
  232. def widen[A, B >: A](fa: F[A]): F[B]
    Definition Classes
    Functor

Deprecated Value Members

  1. def ifA[A](fcond: F[Boolean])(ifTrue: F[A], ifFalse: F[A]): F[A]
    Definition Classes
    Apply
    Annotations
    @deprecated
    Deprecated

    (Since version 2.6.2) Dangerous method, use ifM (a flatMap) or ifF (a map) instead

Inherited from GenTemporal[F, Throwable]

Inherited from GenConcurrent[F, Throwable]

Inherited from GenSpawn[F, Throwable]

Inherited from Sync[F]

Inherited from Defer[F]

Inherited from Unique[F]

Inherited from Clock[F]

Inherited from ClockPlatform[F]

Inherited from MonadCancel[F, Throwable]

Inherited from MonadError[F, Throwable]

Inherited from Monad[F]

Inherited from FlatMap[F]

Inherited from FlatMapArityFunctions[F]

Inherited from ApplicativeError[F, Throwable]

Inherited from Applicative[F]

Inherited from InvariantMonoidal[F]

Inherited from Apply[F]

Inherited from ApplyArityFunctions[F]

Inherited from InvariantSemigroupal[F]

Inherited from Semigroupal[F]

Inherited from Functor[F]

Inherited from Invariant[F]

Inherited from AsyncPlatform[F]

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped