Packages

package effect

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. effect
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. trait QuasiApplicative[F[_]] extends QuasiFunctor[F]

    An Applicative capability for F.

    An Applicative capability for F. Unlike QuasiIO there's nothing "quasi" about it – it makes sense. But named like that for consistency anyway.

    Internal use class, as with QuasiIO, it's only public so that you can define your own instances, better use izumi.functional.bio or cats typeclasses for application logic.

  2. type QuasiApplicative2[F[_, _]] = QuasiApplicative[[β$2$]F[Throwable, β$2$]]
  3. type QuasiApplicative3[F[_, _, _]] = QuasiApplicative[[γ$3$]F[Any, Throwable, γ$3$]]
  4. trait QuasiAsync[F[_]] extends AnyRef

    Parallel & async operations for F required by distage-* libraries.

    Parallel & async operations for F required by distage-* libraries. Unlike QuasiIO there's nothing "quasi" about it – it makes sense. But named like that for consistency anyway.

    Internal use class, as with QuasiIO, it's only public so that you can define your own instances, better use izumi.functional.bio or cats typeclasses for application logic.

  5. type QuasiAsync2[F[_, _]] = QuasiAsync[[β$8$]F[Throwable, β$8$]]
  6. type QuasiAsync3[F[_, _, _]] = QuasiAsync[[γ$9$]F[Any, Throwable, γ$9$]]
  7. trait QuasiFunctor[F[_]] extends AnyRef

    A Functor capability for F.

    A Functor capability for F. Unlike QuasiIO there's nothing "quasi" about it – it makes sense. But named like that for consistency anyway.

    Internal use class, as with QuasiIO, it's only public so that you can define your own instances, better use izumi.functional.bio or cats typeclasses for application logic.

  8. type QuasiFunctor2[F[_, _]] = QuasiFunctor[[β$0$]F[Throwable, β$0$]]
  9. type QuasiFunctor3[F[_, _, _]] = QuasiFunctor[[γ$1$]F[Any, Throwable, γ$1$]]
  10. 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!

    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

  11. type QuasiIO2[F[_, _]] = QuasiIO[[β$6$]F[Throwable, β$6$]]
  12. type QuasiIO3[F[_, _, _]] = QuasiIO[[γ$7$]F[Any, Throwable, γ$7$]]
  13. trait QuasiIORunner[F[_]] extends AnyRef

    An unsafeRun for F.

    An unsafeRun for F. Required for distage-framework apps and distage-testkit tests, but is provided automatically by izumi.distage.modules.DefaultModule for all existing Scala effect types.

    Unlike QuasiIO there's nothing 'quasi' about it – it makes sense. But named like that for consistency anyway.

    Internal use class, as with QuasiIO, it's only public so that you can define your own instances, better use izumi.functional.bio or cats typeclasses for application logic.

  14. type QuasiIORunner2[F[_, _]] = QuasiIORunner[[β$10$]F[Throwable, β$10$]]
  15. type QuasiIORunner3[F[_, _, _]] = QuasiIORunner[[γ$11$]F[Any, Throwable, γ$11$]]
  16. trait QuasiPrimitives[F[_]] extends QuasiApplicative[F]

    Evidence that F supports a subset of QuasiIO capabilities - state, non-effectful not-guaranteed suspension, and setting finalizers that can't inspect the error.

    Evidence that F supports a subset of QuasiIO capabilities - state, non-effectful not-guaranteed suspension, and setting finalizers that can't inspect the error.

    Internal use class, as with QuasiIO, it's only public so that you can define your own instances, better use izumi.functional.bio or cats typeclasses for application logic.

  17. type QuasiPrimitives2[F[_, _]] = QuasiPrimitives[[β$4$]F[Throwable, β$4$]]
  18. type QuasiPrimitives3[F[_, _, _]] = QuasiPrimitives[[γ$5$]F[Any, Throwable, γ$5$]]
  19. trait QuasiRef[F[_], A] extends AnyRef

Value Members

  1. object QuasiApplicative extends LowPriorityQuasiApplicativeInstances
  2. object QuasiAsync extends LowPriorityQuasiAsyncInstances
  3. object QuasiFunctor extends LowPriorityQuasiFunctorInstances
  4. object QuasiIO extends LowPriorityQuasiIOInstances
  5. object QuasiIORunner extends LowPriorityQuasiIORunnerInstances
  6. object QuasiPrimitives extends LowPriorityQuasiPrimitivesInstances
  7. object QuasiRef

Inherited from AnyRef

Inherited from Any

Ungrouped