Packages

trait QuasiIO[F[_]] extends QuasiPrimitives[F]

Evidence that F is _almost_ like an IO monad, but not quite – because we also allow an impure izumi.fundamentals.platform.functional.Identity instance, for which maybeSuspend does not actually suspend!

If you use this interface and forget to add manual suspensions with by-name parameters everywhere, you're going to get weird behavior for Identity instance.

This interface serves internal needs of distage for interoperability with all existing Scala effect types and also with Identity, you should NOT refer to it in your code if possible.

This type is public because you may want to define your own instances, if a suitable instance of izumi.distage.modules.DefaultModule is missing for your custom effect type. For application logic, prefer writing against typeclasses in izumi.functional.bio or cats instead.

See also

izumi.distage.modules.DefaultModule - DefaultModule makes instances of QuasiIO for cats-effect, ZIO, monix, monix-bio, Identity and others available for summoning in your wiring automatically TODO: we want to get rid of this by providing Identity implementations for relevant BIO typeclasses See https://github.com/7mind/izumi/issues/787

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. QuasiIO
  2. QuasiPrimitives
  3. QuasiApplicative
  4. QuasiFunctor
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def bracket[A, B](acquire: => F[A])(release: (A) => F[Unit])(use: (A) => F[B]): F[B]
    Definition Classes
    QuasiPrimitives
  2. abstract def bracketCase[A, B](acquire: => F[A])(release: (A, Option[Throwable]) => F[Unit])(use: (A) => F[B]): F[B]
  3. abstract def definitelyRecoverUnsafeIgnoreTrace[A](action: => F[A])(recover: (Throwable) => F[A]): F[A]

    A stronger version of handleErrorWith (cats-effect) or catchAll (ZIO), the difference is that this will _also_ intercept Throwable defects in ZIO, not only typed errors.

    A stronger version of handleErrorWith (cats-effect) or catchAll (ZIO), the difference is that this will _also_ intercept Throwable defects in ZIO, not only typed errors.

    Note

    This function is meant for _RECOVERING_ errors, for _REPORTING_ errors use definitelyRecoverWithTrace and include the full trace of the error in the report.

  4. abstract def definitelyRecoverWithTrace[A](action: => F[A])(recoverWithTrace: (Throwable, Trace[Throwable]) => F[A]): F[A]

    Like definitelyRecoverUnsafeIgnoreTrace, but the second parameter to the callback contains the effect's debugging information, possibly convertable to a Throwable via Exit.Trace#toThrowable, or that could be used to mutably enhance the left-hand-side Throwable value via Exit.Trace#unsafeAttachTrace

    Like definitelyRecoverUnsafeIgnoreTrace, but the second parameter to the callback contains the effect's debugging information, possibly convertable to a Throwable via Exit.Trace#toThrowable, or that could be used to mutably enhance the left-hand-side Throwable value via Exit.Trace#unsafeAttachTrace

    Note

    Exit.Trace#unsafeAttachTrace may perform side-effects to the original Throwable argument on the left, the left throwable should be DISCARDED after calling the callback. (e.g. in case of ZIO, the callback will mutate the throwable and attach a ZIO Trace to it.)

  5. abstract def fail[A](t: => Throwable): F[A]
  6. abstract def flatMap[A, B](fa: F[A])(f: (A) => F[B]): F[B]
    Definition Classes
    QuasiIOQuasiPrimitives
  7. abstract def map[A, B](fa: F[A])(f: (A) => B): F[B]
    Definition Classes
    QuasiFunctor
  8. abstract def map2[A, B, C](fa: F[A], fb: => F[B])(f: (A, B) => C): F[C]
    Definition Classes
    QuasiApplicative
  9. abstract def maybeSuspend[A](eff: => A): F[A]

    A weaker version of delay.

    A weaker version of delay. Does not guarantee _actual_ suspension of side-effects, because QuasiIO[Identity] is allowed

  10. abstract def maybeSuspendEither[A](eff: => Either[Throwable, A]): F[A]
  11. abstract def pure[A](a: A): F[A]
    Definition Classes
    QuasiApplicative
  12. abstract def redeem[A, B](action: => F[A])(failure: (Throwable) => F[B], success: (A) => F[B]): F[B]

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. final def bracketAuto[A <: AutoCloseable, B](acquire: => F[A])(use: (A) => F[B]): F[B]
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def guarantee[A](fa: => F[A])(finally: => F[Unit]): F[A]
    Definition Classes
    QuasiPrimitives
  12. def guaranteeOnFailure[A](fa: => F[A])(cleanupOnFailure: (Throwable) => F[Unit]): F[A]
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. final def ifThenElse[A](cond: Boolean)(ifTrue: => F[A], ifFalse: => F[A]): F[A]
    Definition Classes
    QuasiApplicative
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. def mkRef[A](a: A): F[QuasiRef[F, A]]
    Definition Classes
    QuasiIOQuasiPrimitives
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. def suspendF[A](effAction: => F[A]): F[A]
    Definition Classes
    QuasiIOQuasiPrimitives
  21. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  22. def tailRecM[A, B](a: A)(f: (A) => F[Either[A, B]]): F[B]
    Definition Classes
    QuasiPrimitives
  23. def toString(): String
    Definition Classes
    AnyRef → Any
  24. def traverse[A, B](l: Iterable[A])(f: (A) => F[B]): F[List[B]]
    Definition Classes
    QuasiPrimitivesQuasiApplicative
  25. def traverse_[A](l: Iterable[A])(f: (A) => F[Unit]): F[Unit]
    Definition Classes
    QuasiPrimitivesQuasiApplicative
  26. final val unit: F[Unit]
    Definition Classes
    QuasiApplicative
  27. final def unless(cond: Boolean)(ifFalse: => F[Unit]): F[Unit]
    Definition Classes
    QuasiApplicative
  28. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  29. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  30. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  31. final def when(cond: Boolean)(ifTrue: => F[Unit]): F[Unit]
    Definition Classes
    QuasiApplicative
  32. final def widen[A, B >: A](fa: F[A]): F[B]
    Definition Classes
    QuasiFunctor

Inherited from QuasiPrimitives[F]

Inherited from QuasiApplicative[F]

Inherited from QuasiFunctor[F]

Inherited from AnyRef

Inherited from Any

Ungrouped