package bio
Current hierarchy (use http://www.nomnoml.com/ to render, rendered: https://izumi.7mind.io/bio/media/bio-relationship-hierarchy.svg)
[Functor2]<--[Bifunctor2] [Bifunctor2]<--[ApplicativeError2] [Functor2]<--[Applicative2] [Applicative2]<--[Guarantee2] [Applicative2]<--[Monad2] [Guarantee2]<--[ApplicativeError2] [ApplicativeError2]<--[Error2] [Monad2]<--[Error2] [Error2]<--[Bracket2] [Bracket2]<--[Panic2] [Panic2]<--[IO2] [IO2]<--[Async2] [Monad2]<--[Parallel2] [Parallel2]<--[Concurrent2] [Concurrent2]<--[Async2] [Error2]<--[Temporal2]
Auxiliary algebras:
[cats.effect.*]<:--[CatsConversions] [Fork2]<:--[Fiber2] [BlockingIO2] [Primitives2] [Primitives2]<:--[Ref2] [Primitives2]<:--[Semaphore2] [Primitives2]<:--[Promise2] [PrimitivesM2] [PrimitivesM2]<:--[RefM2] [PrimitivesM2]<:--[Mutex2] [Entropy1]<:--[Entropy2] [Clock1]<:--[Clock2] [UnsafeRun2]
Raw inheritance hierarchy:
[Functor2]<--[Applicative2] [Applicative2]<--[Guarantee2] [Applicative2]<--[Monad2] [Guarantee2]<--[ApplicativeError2] [Bifunctor2]<--[ApplicativeError2] [ApplicativeError2]<--[Error2] [Monad2]<--[Error2] [Error2]<--[Bracket2] [Bracket2]<--[Panic2] [Panic2]<--[IO2] [Parallel2]<--[Concurrent2] [Concurrent2]<--[Async2] [IO2]<--[Async2] [Temporal2]
current hierarchy roots:
bifunctor:
- Functor3
- Bifunctor3
- Parallel3
- Temporal3
standalone:
- Fork3
- BlockingIO3
- Primitives3
- PrimitivesM3
- Alphabetic
- By Inheritance
- bio
- Syntax2
- ImplicitPuns
- ImplicitPuns1
- ImplicitPuns2
- ImplicitPuns3
- ImplicitPuns4
- ImplicitPuns5
- ImplicitPuns6
- ImplicitPuns7
- ImplicitPuns8
- ImplicitPuns9
- ImplicitPuns10
- ImplicitPuns11
- ImplicitPuns12
- ImplicitPuns13
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait Applicative2[F[+_, +_]] extends Functor2[F]
- trait ApplicativeError2[F[+_, +_]] extends Guarantee2[F] with Bifunctor2[F]
- trait Async2[F[+_, +_]] extends Concurrent2[F] with IO2[F]
- trait Bifunctor2[F[+_, +_]] extends RootBifunctor[F]
- trait BlockingIO2[F[+_, +_]] extends BlockingIOInstances with DivergenceHelper with PredefinedHelper
- sealed trait BlockingIOInstancesLowPriority extends AnyRef
- trait Bracket2[F[+_, +_]] extends Error2[F]
- trait CatsConversions extends CatsConversions1
Automatic converters from BIO* hierarchy to equivalent cats & cats-effect classes.
Automatic converters from BIO* hierarchy to equivalent cats & cats-effect classes.
import izumi.functional.bio.IO2 import izumi.functional.bio.catz.* import cats.effect.kernel.Sync def divideByZero[F[+_, +_]: IO2]: F[Throwable, Int] = { Sync[F[Throwable, _]].delay(10 / 0) }
- trait CatsConversions1 extends CatsConversions2
- trait CatsConversions10 extends CatsConversions11
- trait CatsConversions11 extends AnyRef
- trait CatsConversions2 extends CatsConversions3
- trait CatsConversions3 extends CatsConversions4
- trait CatsConversions4 extends CatsConversions5
- trait CatsConversions5 extends CatsConversions6
- trait CatsConversions6 extends CatsConversions60
- trait CatsConversions60 extends CatsConversions7
- trait CatsConversions7 extends CatsConversions8
- trait CatsConversions8 extends CatsConversions9
- trait CatsConversions9 extends CatsConversions10
- trait Clock1[F[_]] extends DivergenceHelper
- type Clock2[F[_, _]] = Clock1[[β$4$]F[Nothing, β$4$]]
- type Clock3[F[_, _, _]] = Clock1[[γ$5$]F[Any, Nothing, γ$5$]]
- trait Concurrent2[F[+_, +_]] extends Parallel2[F]
- trait DivergenceHelper extends AnyRef
- trait Entropy1[F[_]] extends DivergenceHelper
- type Entropy2[F[_, _]] = Entropy1[[β$6$]F[Nothing, β$6$]]
- type Entropy3[F[_, _, _]] = Entropy1[[γ$7$]F[Any, Nothing, γ$7$]]
- trait Error2[F[+_, +_]] extends ApplicativeError2[F] with Monad2[F] with ErrorAccumulatingOps2[F]
- trait ErrorAccumulatingOps2[F[+_, +_]] extends AnyRef
- sealed trait Exit[+E, +A] extends AnyRef
- trait Fiber2[+F[+_, +_], +E, +A] extends AnyRef
- trait FiberLocal2[F[_, _], A] extends AnyRef
- trait FiberRef2[F[_, _], A] extends FiberLocal2[F, A]
- trait Fork2[F[+_, +_]] extends RootBifunctor[F] with ForkInstances
- trait Functor2[F[+_, +_]] extends RootBifunctor[F]
- trait Guarantee2[F[+_, +_]] extends Applicative2[F]
- trait IO2[F[+_, +_]] extends Panic2[F]
- type Latch2[+F[+_, +_]] = Promise2[F, Nothing, Unit]
- sealed trait LowPriorityClockInstances extends AnyRef
- sealed trait LowPriorityEntropyInstances extends AnyRef
- sealed trait LowPriorityForkInstances extends AnyRef
- trait LowPrioritySyncSafeInstances0 extends LowPrioritySyncSafeInstances1
- trait LowPrioritySyncSafeInstances1 extends AnyRef
- trait Monad2[F[+_, +_]] extends Applicative2[F]
- trait Mutex2[F[+_, +_]] extends AnyRef
- trait Panic2[F[+_, +_]] extends Bracket2[F] with PanicSyntax
- trait Parallel2[F[+_, +_]] extends RootBifunctor[F]
- trait PredefinedHelper extends AnyRef
- trait Primitives2[F[+_, +_]] extends PrimitivesInstances
- sealed trait PrimitivesInstancesLowPriority extends AnyRef
- trait PrimitivesLocal2[F[+_, +_]] extends PrimitivesLocalInstances
- sealed trait PrimitivesLocalInstancesLowPriority extends AnyRef
- trait PrimitivesM2[F[+_, +_]] extends PrimitivesMInstances
- sealed trait PrimitivesMLowPriorityInstances1 extends PrimitivesMLowPriorityInstances2
- sealed trait PrimitivesMLowPriorityInstances2 extends AnyRef
- trait Promise2[+F[+_, +_], E, A] extends AnyRef
- trait Ref1[+F[_], A] extends AnyRef
- type Ref2[+F[_, _], A] = Ref1[[β$0$]F[Nothing, β$0$], A]
- trait RefM2[F[+_, +_], A] extends AnyRef
- trait Root extends DivergenceHelper with PredefinedHelper
- trait RootBifunctor[F[+_, +_]] extends Root
- sealed trait RootInstancesLowPriority1 extends RootInstancesLowPriority2
- sealed trait RootInstancesLowPriority2 extends RootInstancesLowPriority3
- sealed trait RootInstancesLowPriority3 extends RootInstancesLowPriority4
- sealed trait RootInstancesLowPriority4 extends RootInstancesLowPriority5
- sealed trait RootInstancesLowPriority5 extends RootInstancesLowPriority6
- sealed trait RootInstancesLowPriority6 extends RootInstancesLowPriority7
- sealed trait RootInstancesLowPriority7 extends RootInstancesLowPriority8
- sealed trait RootInstancesLowPriority8 extends AnyRef
- trait Semaphore1[+F[_]] extends AnyRef
- type Semaphore2[+F[_, _]] = Semaphore1[[β$1$]F[Nothing, β$1$]]
- trait SyncSafe1[F[_]] extends DivergenceHelper
Import _exception-safe_ side effects
- type SyncSafe2[F[_, _]] = SyncSafe1[[β$2$]F[Nothing, β$2$]]
- type SyncSafe3[F[_, _, _]] = SyncSafe1[[γ$3$]F[Any, Nothing, γ$3$]]
- trait Temporal2[F[+_, +_]] extends RootBifunctor[F] with TemporalInstances
- sealed trait TemporalInstancesLowPriority1 extends AnyRef
- type TransZio[F[_, _]] = Isomorphism3[[R, E, A]F[E, A], [R, E, A]IO[E, A]]
- final case class TypedError[+A](prefixMessage: String, error: A) extends RuntimeException with Product with Serializable
- trait UnsafeRun2[F[_, _]] extends AnyRef
- trait WithFilter[+E] extends AnyRef
- sealed trait WithFilterInstances1 extends WithFilterInstances2
- sealed trait WithFilterInstances2 extends WithFilterInstances3
- sealed trait WithFilterInstances3 extends AnyRef
Value Members
- final def Applicative2[F[+_, +_]](implicit arg0: Applicative2[F]): Applicative2[F]
- Definition Classes
- ImplicitPuns11
- Annotations
- @inline()
- implicit final def Applicative2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Applicative2[F]): ApplicativeOps[F, E, A]
- Definition Classes
- ImplicitPuns11
- Annotations
- @inline()
- final def ApplicativeError2[F[+_, +_]](implicit arg0: ApplicativeError2[F]): ApplicativeError2[F]
- Definition Classes
- ImplicitPuns8
- Annotations
- @inline()
- implicit final def ApplicativeError2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: ApplicativeError2[F]): ApplicativeErrorOps[F, E, A]
- Definition Classes
- ImplicitPuns8
- Annotations
- @inline()
- final def Async2[F[+_, +_]](implicit arg0: Async2[F]): Async2[F]
- Definition Classes
- ImplicitPuns1
- Annotations
- @inline()
- implicit final def Async2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Async2[F]): AsyncOps[F, E, A]
- Definition Classes
- ImplicitPuns1
- Annotations
- @inline()
- final def Bifunctor2[F[+_, +_]](implicit arg0: Bifunctor2[F]): Bifunctor2[F]
- Definition Classes
- ImplicitPuns12
- Annotations
- @inline()
- implicit final def Bifunctor2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Functor2[F]): FunctorOps[F, E, A]
- Definition Classes
- ImplicitPuns12
- Annotations
- @inline()
- implicit final def Bifunctor2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Bifunctor2[F]): BifunctorOps[F, E, A]
- Definition Classes
- ImplicitPuns12
- Annotations
- @inline()
- final def Bracket2[F[+_, +_]](implicit arg0: Bracket2[F]): Bracket2[F]
- Definition Classes
- ImplicitPuns6
- Annotations
- @inline()
- implicit final def Bracket2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Bracket2[F]): BracketOps[F, E, A]
- Definition Classes
- ImplicitPuns6
- Annotations
- @inline()
- final def Concurrent2[F[+_, +_]](implicit arg0: Concurrent2[F]): Concurrent2[F]
- Definition Classes
- ImplicitPuns2
- Annotations
- @inline()
- implicit final def Concurrent2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Panic2[F]): PanicOps[F, E, A]
- Definition Classes
- ImplicitPuns2
- Annotations
- @inline()
- implicit final def Concurrent2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Concurrent2[F]): ConcurrentOps[F, E, A]
- Definition Classes
- ImplicitPuns2
- Annotations
- @inline()
- final def Error2[F[+_, +_]](implicit arg0: Error2[F]): Error2[F]
- Definition Classes
- ImplicitPuns7
- Annotations
- @inline()
- implicit final def Error2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Error2[F]): ErrorOps[F, E, A]
- Definition Classes
- ImplicitPuns7
- Annotations
- @inline()
- def F[F[+_, +_]](implicit F: Functor2[F]): bio.syntax.Syntax2.F.F.type
A convenient dependent summoner for BIO hierarchy.
A convenient dependent summoner for BIO hierarchy. Auto-narrows to the most powerful available class:
import izumi.functional.bio.{F, Temporal2} def y[F[+_, +_]: Temporal2] = { F.timeout(5.seconds)(F.forever(F.unit)) }
- Definition Classes
- Syntax2
- final def Fork2[F[+_, +_]](implicit arg0: Fork2[F]): Fork2[F]
- Definition Classes
- ImplicitPuns
- Annotations
- @inline()
- implicit final def Fork2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Fork2[F]): ForkOps[F, E, A]
- Definition Classes
- ImplicitPuns
- Annotations
- @inline()
- final def Functor2[F[+_, +_]](implicit arg0: Functor2[F]): Functor2[F]
- Definition Classes
- ImplicitPuns13
- Annotations
- @inline()
- implicit final def Functor2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Functor2[F]): FunctorOps[F, E, A]
- Definition Classes
- ImplicitPuns13
- Annotations
- @inline()
- final def Guarantee2[F[+_, +_]](implicit arg0: Guarantee2[F]): Guarantee2[F]
- Definition Classes
- ImplicitPuns9
- Annotations
- @inline()
- implicit final def Guarantee2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Guarantee2[F]): GuaranteeOps[F, E, A]
- Definition Classes
- ImplicitPuns9
- Annotations
- @inline()
- final def IO2[F[+_, +_]](implicit arg0: IO2[F]): IO2[F]
- Definition Classes
- ImplicitPuns4
- Annotations
- @inline()
- final def IO2[F[+_, +_], A](effect: => A)(implicit F: IO2[F]): F[Throwable, A]
Shorthand for IO2#syncThrowable
Shorthand for IO2#syncThrowable
IO2(println("Hello world!"))
- Definition Classes
- ImplicitPuns4
- Annotations
- @inline()
- implicit final def IO2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: IO2[F]): IOOps[F, E, A]
- Definition Classes
- ImplicitPuns4
- Annotations
- @inline()
- lazy val Latch2: Promise2.type
- final def Monad2[F[+_, +_]](implicit arg0: Monad2[F]): Monad2[F]
- Definition Classes
- ImplicitPuns10
- Annotations
- @inline()
- implicit final def Monad2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Monad2[F]): MonadOps[F, E, A]
- Definition Classes
- ImplicitPuns10
- Annotations
- @inline()
- final def Panic2[F[+_, +_]](implicit arg0: Panic2[F]): Panic2[F]
- Definition Classes
- ImplicitPuns5
- Annotations
- @inline()
- implicit final def Panic2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Panic2[F]): PanicOps[F, E, A]
- Definition Classes
- ImplicitPuns5
- Annotations
- @inline()
- final def Parallel2[F[+_, +_]](implicit arg0: Parallel2[F]): Parallel2[F]
- Definition Classes
- ImplicitPuns3
- Annotations
- @inline()
- implicit final def Parallel2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Monad2[F]): MonadOps[F, E, A]
- Definition Classes
- ImplicitPuns3
- Annotations
- @inline()
- implicit final def Parallel2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Parallel2[F]): ParallelOps[F, E, A]
- Definition Classes
- ImplicitPuns3
- Annotations
- @inline()
- lazy val Ref2: Ref1.type
- lazy val Semaphore2: Semaphore1.type
- final def Temporal2[F[+_, +_]](implicit arg0: Temporal2[F]): Temporal2[F]
- Definition Classes
- ImplicitPuns
- Annotations
- @inline()
- implicit final def Temporal2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Error2[F]): ErrorOps[F, E, A]
- Definition Classes
- ImplicitPuns
- Annotations
- @inline()
- implicit final def Temporal2[F[+_, +_], E, A](self: F[E, A])(implicit arg0: Temporal2[F]): TemporalOps[F, E, A]
- Definition Classes
- ImplicitPuns
- Annotations
- @inline()
- object BlockingIO2
- object BlockingIOInstances extends BlockingIOInstancesLowPriority
- object CatsConversions
- object Clock1 extends LowPriorityClockInstances
- object Clock2
- object Clock3
- object DivergenceHelper
- object Entropy1 extends LowPriorityEntropyInstances
- object Entropy2
- object Entropy3
- object Exit
- object Fiber2
- object FiberRef2
- object ForkInstances extends LowPriorityForkInstances
- object Mutex2
- object PanicSyntax
- object PredefinedHelper
- object Primitives2
- object PrimitivesInstances extends PrimitivesInstancesLowPriority
- object PrimitivesLocal2
- object PrimitivesLocalInstances extends PrimitivesLocalInstancesLowPriority
- object PrimitivesM2
- object PrimitivesMInstances extends PrimitivesMLowPriorityInstances1
- object Promise2
- object Ref1
- object RefM2
- object Root extends RootInstancesLowPriority1
- object Semaphore1
- object SyncSafe1 extends LowPrioritySyncSafeInstances0
- object SyncSafe2
- object SyncSafe3
- object TemporalInstances extends TemporalInstancesLowPriority1
- object TransZio
- object TypedError extends Serializable
- object UnsafeRun2
- object WithFilter extends WithFilterInstances1
- object catz extends CatsConversions
Automatic converters from BIO* hierarchy to equivalent cats & cats-effect classes.
Automatic converters from BIO* hierarchy to equivalent cats & cats-effect classes.
import izumi.functional.bio.IO2 import izumi.functional.bio.catz.* import cats.effect.Sync def divideByZero[F[+_, +_]: IO2]: F[Throwable, Int] = { Sync[F[Throwable, _]].delay(10 / 0) }