Packages

trait QuasiIO[F[_]] extends QuasiApplicative[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

Linear Supertypes
QuasiApplicative[F], QuasiFunctor[F], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. QuasiIO
  2. QuasiApplicative
  3. QuasiFunctor
  4. AnyRef
  5. 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]
  2. abstract def bracketCase[A, B](acquire: => F[A])(release: (A, Option[Throwable]) => F[Unit])(use: (A) => F[B]): F[B]
  3. abstract def definitelyRecover[A](action: => F[A])(recover: (Throwable) => F[A]): F[A]

    A stronger version of handleErrorWith, the difference is that this will _also_ intercept Throwable defects in ZIO, not only typed errors

  4. abstract def definitelyRecoverCause[A](action: => F[A])(recoverCause: (Throwable, () => Throwable) => F[A]): F[A]

    definitelyRecover, but the second argument is a callback that when called, will return another Throwable, possible enhanced with the effect's own debugging information.

    definitelyRecover, but the second argument is a callback that when called, will return another Throwable, possible enhanced with the effect's own debugging information.

    Note

    the callback 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]
  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]
  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. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. def suspendF[A](effAction: => F[A]): F[A]
  20. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  21. def tailRecM[A, B](a: A)(f: (A) => F[Either[A, B]]): F[B]
  22. def toString(): String
    Definition Classes
    AnyRef → Any
  23. def traverse[A, B](l: Iterable[A])(f: (A) => F[B]): F[List[B]]
    Definition Classes
    QuasiIOQuasiApplicative
  24. def traverse_[A](l: Iterable[A])(f: (A) => F[Unit]): F[Unit]
    Definition Classes
    QuasiIOQuasiApplicative
  25. final val unit: F[Unit]
    Definition Classes
    QuasiApplicative
  26. final def unless(cond: Boolean)(ifFalse: => F[Unit]): F[Unit]
    Definition Classes
    QuasiApplicative
  27. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  28. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  29. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  30. final def when(cond: Boolean)(ifTrue: => F[Unit]): F[Unit]
    Definition Classes
    QuasiApplicative
  31. final def widen[A, B >: A](fa: F[A]): F[B]
    Definition Classes
    QuasiFunctor

Inherited from QuasiApplicative[F]

Inherited from QuasiFunctor[F]

Inherited from AnyRef

Inherited from Any

Ungrouped