package quasi
- Alphabetic
- By Inheritance
- quasi
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait QuasiApplicative[F[_]] extends QuasiFunctor[F]
An
Applicativecapability forF.An
Applicativecapability forF. UnlikeQuasiIOthere'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.
- type QuasiApplicative2[F[_, _]] = QuasiApplicative[[β$2$]F[Throwable, β$2$]]
- type QuasiApplicative3[F[_, _, _]] = QuasiApplicative[[γ$3$]F[Any, Throwable, γ$3$]]
- trait QuasiAsync[F[_]] extends AnyRef
Parallel & async operations for
Frequired bydistage-*libraries.Parallel & async operations for
Frequired bydistage-*libraries. UnlikeQuasiIOthere'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.
TODO: we want to get rid of this by providing Identity implementations for Parallel3, Async3 and Temporal3 See https://github.com/7mind/izumi/issues/787
- type QuasiAsync2[F[_, _]] = QuasiAsync[[β$8$]F[Throwable, β$8$]]
- type QuasiAsync3[F[_, _, _]] = QuasiAsync[[γ$9$]F[Any, Throwable, γ$9$]]
- trait QuasiFunctor[F[_]] extends AnyRef
A
Functorcapability forF.A
Functorcapability forF. UnlikeQuasiIOthere'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.
- type QuasiFunctor2[F[_, _]] = QuasiFunctor[[β$0$]F[Throwable, β$0$]]
- type QuasiFunctor3[F[_, _, _]] = QuasiFunctor[[γ$1$]F[Any, Throwable, γ$1$]]
- trait QuasiIO[F[_]] extends QuasiPrimitives[F]
Evidence that
Fis _almost_ like anIOmonad, but not quite – because we also allow an impure izumi.fundamentals.platform.functional.Identity instance, for whichmaybeSuspenddoes not actually suspend!Evidence that
Fis _almost_ like anIOmonad, but not quite – because we also allow an impure izumi.fundamentals.platform.functional.Identity instance, for whichmaybeSuspenddoes 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
distagefor interoperability with all existing Scala effect types and also withIdentity, 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 -
DefaultModulemakes instances ofQuasiIOfor cats-effect, ZIO, monix, monix-bio,Identityand 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
- type QuasiIO2[F[_, _]] = QuasiIO[[β$6$]F[Throwable, β$6$]]
- type QuasiIO3[F[_, _, _]] = QuasiIO[[γ$7$]F[Any, Throwable, γ$7$]]
- trait QuasiIORunner[F[_]] extends AnyRef
An
unsafeRunforF.An
unsafeRunforF. Required fordistage-frameworkapps anddistage-testkittests, but is provided automatically by izumi.distage.modules.DefaultModule for all existing Scala effect types.Unlike
QuasiIOthere'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.
- type QuasiIORunner2[F[_, _]] = QuasiIORunner[[β$12$]F[Throwable, β$12$]]
- type QuasiIORunner3[F[_, _, _]] = QuasiIORunner[[γ$13$]F[Any, Throwable, γ$13$]]
- trait QuasiPrimitives[F[_]] extends QuasiApplicative[F]
Evidence that
Fsupports a subset of QuasiIO capabilities - state, non-effectful not-guaranteed suspension, and setting finalizers that can't inspect the error.Evidence that
Fsupports 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.
- type QuasiPrimitives2[F[_, _]] = QuasiPrimitives[[β$4$]F[Throwable, β$4$]]
- type QuasiPrimitives3[F[_, _, _]] = QuasiPrimitives[[γ$5$]F[Any, Throwable, γ$5$]]
- trait QuasiRef[F[_], A] extends AnyRef
- trait QuasiTemporal[F[_]] extends AnyRef
- Note
Dev note: This was split from QuasiAsync to stop distage-testkit runtime from depending on Temporal2 & Clock2, so that they wouldn't get memoized and the user could override them in tests without destroying memoization.
- type QuasiTemporal2[F[_, _]] = QuasiTemporal[[β$10$]F[Throwable, β$10$]]
- type QuasiTemporal3[F[_, _, _]] = QuasiTemporal[[γ$11$]F[Any, Throwable, γ$11$]]
Value Members
- object QuasiApplicative extends LowPriorityQuasiApplicativeInstances
- object QuasiAsync extends LowPriorityQuasiAsyncInstances
- object QuasiFunctor extends LowPriorityQuasiFunctorInstances
- object QuasiIO extends LowPriorityQuasiIOInstances
- object QuasiIORunner extends LowPriorityQuasiIORunnerInstances
- object QuasiPrimitives extends LowPriorityQuasiPrimitivesInstances
- object QuasiRef
- object QuasiTemporal extends LowPriorityQuasiTimerInstances