package effect
- Alphabetic
- By Inheritance
- effect
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait QuasiApplicative[F[_]] extends QuasiFunctor[F]
An
Applicative
capability forF
.An
Applicative
capability forF
. UnlikeQuasiIO
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.
- 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
F
required bydistage-*
libraries.Parallel & async operations for
F
required bydistage-*
libraries. UnlikeQuasiIO
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.
- type QuasiAsync2[F[_, _]] = QuasiAsync[[β$8$]F[Throwable, β$8$]]
- type QuasiAsync3[F[_, _, _]] = QuasiAsync[[γ$9$]F[Any, Throwable, γ$9$]]
- trait QuasiFunctor[F[_]] extends AnyRef
A
Functor
capability forF
.A
Functor
capability forF
. UnlikeQuasiIO
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.
- 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
F
is _almost_ like anIO
monad, but not quite – because we also allow an impure izumi.fundamentals.platform.functional.Identity instance, for whichmaybeSuspend
does not actually suspend!Evidence that
F
is _almost_ like anIO
monad, but not quite – because we also allow an impure izumi.fundamentals.platform.functional.Identity instance, for whichmaybeSuspend
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 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 -
DefaultModule
makes instances ofQuasiIO
for cats-effect, ZIO, monix, monix-bio,Identity
and others available for summoning in your wiring automatically
- type QuasiIO2[F[_, _]] = QuasiIO[[β$6$]F[Throwable, β$6$]]
- type QuasiIO3[F[_, _, _]] = QuasiIO[[γ$7$]F[Any, Throwable, γ$7$]]
- trait QuasiIORunner[F[_]] extends AnyRef
An
unsafeRun
forF
.An
unsafeRun
forF
. Required fordistage-framework
apps anddistage-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.
- type QuasiIORunner2[F[_, _]] = QuasiIORunner[[β$10$]F[Throwable, β$10$]]
- type QuasiIORunner3[F[_, _, _]] = QuasiIORunner[[γ$11$]F[Any, Throwable, γ$11$]]
- 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.
- type QuasiPrimitives2[F[_, _]] = QuasiPrimitives[[β$4$]F[Throwable, β$4$]]
- type QuasiPrimitives3[F[_, _, _]] = QuasiPrimitives[[γ$5$]F[Any, Throwable, γ$5$]]
- trait QuasiRef[F[_], A] extends AnyRef
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