izumi.functional.quasi

Members list

Concise view

Type members

Classlikes

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

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

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.

Attributes

Companion:
object
Graph
Supertypes
trait QuasiFunctor[F]
class Object
trait Matchable
class Any
Known subtypes
trait QuasiIO[F]

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
trait QuasiAsync[F[_]]

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.

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.

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

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
object QuasiAsync

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
trait QuasiFunctor[F[_]]

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

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.

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait QuasiIO[F]

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
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.

Attributes

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

Companion:
object
Graph
Supertypes
trait QuasiFunctor[F]
class Object
trait Matchable
class Any
object QuasiIO

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
QuasiIO.type
trait QuasiIORunner[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.

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.

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class BIOImpl[F]
object IdentityImpl.type

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
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.

Attributes

Companion:
object
Graph
Supertypes
trait QuasiFunctor[F]
class Object
trait Matchable
class Any
Known subtypes
trait QuasiIO[F]

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
trait QuasiRef[F[_], A]

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
object QuasiRef

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Types

type QuasiApplicative2[F[_, _]] = QuasiApplicative[[_] =>> F[Throwable, _$10]]
type QuasiApplicative3[F[_, _, _]] = QuasiApplicative[[_] =>> F[Any, Throwable, _$14]]
type QuasiAsync2[F[_, _]] = QuasiAsync[[_] =>> F[Throwable, _$31]]
type QuasiAsync3[F[_, _, _]] = QuasiAsync[[_] =>> F[Any, Throwable, _$35]]
type QuasiFunctor2[F[_, _]] = QuasiFunctor[[_] =>> F[Throwable, _$3]]
type QuasiFunctor3[F[_, _, _]] = QuasiFunctor[[_] =>> F[Any, Throwable, _$7]]
type QuasiIO2[F[_, _]] = QuasiIO[[_] =>> F[Throwable, _$24]]
type QuasiIO3[F[_, _, _]] = QuasiIO[[_] =>> F[Any, Throwable, _$28]]
type QuasiIORunner2[F[_, _]] = QuasiIORunner[[_] =>> F[Throwable, _$38]]
type QuasiIORunner3[F[_, _, _]] = QuasiIORunner[[_] =>> F[Any, Throwable, _$42]]
type QuasiPrimitives2[F[_, _]] = QuasiPrimitives[[_] =>> F[Throwable, _$17]]
type QuasiPrimitives3[F[_, _, _]] = QuasiPrimitives[[_] =>> F[Any, Throwable, _$21]]