Packages

  • package root
    Definition Classes
    root
  • package izumi
    Definition Classes
    root
  • package distage
    Definition Classes
    izumi
  • package functional
    Definition Classes
    izumi
  • package bio

    Current hierarchy (rendered: https://izumi.7mind.io/bio/media/bio-relationship-hierarchy.svg, use https://www.nomnoml.com/ to render)

    Current hierarchy (rendered: https://izumi.7mind.io/bio/media/bio-relationship-hierarchy.svg, use https://www.nomnoml.com/ to render)

    [Functor2]<--[Bifunctor2]
    [Bifunctor2]<--[ApplicativeError2]
    [Functor2]<--[Applicative2]
    [Applicative2]<--[Guarantee2]
    [Applicative2]<--[Monad2]
    [Guarantee2]<--[ApplicativeError2]
    [ApplicativeError2]<--[Error2]
    [Error2]<--[WeakTemporal2]
    [WeakTemporal2]<--[Temporal2]
    [Monad2]<--[Error2]
    [Error2]<--[Bracket2]
    [Bracket2]<--[Panic2]
    [Panic2]<--[IO2]
    [IO2]<--[WeakAsync2]
    [WeakAsync2]<--[Async2]
    
    [Monad2]<--[Parallel2]
    [Parallel2]<--[WeakAsync2]
    [Panic2]<--[Concurrent2]
    [Parallel2]<--[Concurrent2]

    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:

    [Bifunctor2]<--[ApplicativeError2]
    [Functor2]<--[Applicative2]
    [Applicative2]<--[Guarantee2]
    [Applicative2]<--[Monad2]
    [Guarantee2]<--[ApplicativeError2]
    [ApplicativeError2]<--[Error2]
    [Monad2]<--[Error2]
    [Error2]<--[Bracket2]
    [Bracket2]<--[Panic2]
    [Panic2]<--[IO2]
    
    [Parallel2]<--[WeakAsync2]
    [Parallel2]<--[Concurrent2]
    [Concurrent2]<--[Async2]
    [IO2]<--[WeakAsync2]
    [WeakAsync2]<--[Async2]
    
    [WeakTemporal2]<--[Temporal2]

    current hierarchy roots:

    bifunctor:

    standalone:

    Note

    New BIO typeclass checklist:

    [ ] - add syntax to `Syntax2` with the same name as the type
    [ ] - add syntax for new root's `InnerF` with the same name as `InnerF` in `Syntax2`
    [ ] - add new attachments in `RootInstanceLowPriority*`
    [ ] - add conversion from itself to its `InnerF` to `RootInstanceLowPriority*`
          (conversions implicit priority: from most specific `InnerF` to least specific)
    [ ] - add conversion to equivalent cats typeclass if applicable in `CatsConversions`
    [ ] - update hierarchy graph above, re-render SVG
    [ ] - add syntax tests in `SyntaxTest`, runtime tests if applicable
    ,

    Real and raw (direct inheritance) hierarchies differ because of implicit ambiguities caused by inheritance: https://typelevel.org/blog/2016/09/30/subtype-typeclasses.html However, since Scala 3.7, the ambiguity problem has been resolved on Scala 3 using inverted given prioritization: https://contributors.scala-lang.org/t/joining-the-dots-on-recent-implicit-prioritization-changes-and-some-scala-history/6814/3 So, when or if we drop support for Scala 2, we can revisit the design, remove InnerF pattern and make real and raw hierarchy match.

  • package lifecycle
  • package quasi
  • IzEither
  • Lub
  • Renderable
  • Value
  • WithRenderableSyntax
  • package fundamentals
    Definition Classes
    izumi
  • package logstage
    Definition Classes
    izumi
p

izumi

functional

package functional

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package bio

    Current hierarchy (rendered: https://izumi.7mind.io/bio/media/bio-relationship-hierarchy.svg, use https://www.nomnoml.com/ to render)

    Current hierarchy (rendered: https://izumi.7mind.io/bio/media/bio-relationship-hierarchy.svg, use https://www.nomnoml.com/ to render)

    [Functor2]<--[Bifunctor2]
    [Bifunctor2]<--[ApplicativeError2]
    [Functor2]<--[Applicative2]
    [Applicative2]<--[Guarantee2]
    [Applicative2]<--[Monad2]
    [Guarantee2]<--[ApplicativeError2]
    [ApplicativeError2]<--[Error2]
    [Error2]<--[WeakTemporal2]
    [WeakTemporal2]<--[Temporal2]
    [Monad2]<--[Error2]
    [Error2]<--[Bracket2]
    [Bracket2]<--[Panic2]
    [Panic2]<--[IO2]
    [IO2]<--[WeakAsync2]
    [WeakAsync2]<--[Async2]
    
    [Monad2]<--[Parallel2]
    [Parallel2]<--[WeakAsync2]
    [Panic2]<--[Concurrent2]
    [Parallel2]<--[Concurrent2]

    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:

    [Bifunctor2]<--[ApplicativeError2]
    [Functor2]<--[Applicative2]
    [Applicative2]<--[Guarantee2]
    [Applicative2]<--[Monad2]
    [Guarantee2]<--[ApplicativeError2]
    [ApplicativeError2]<--[Error2]
    [Monad2]<--[Error2]
    [Error2]<--[Bracket2]
    [Bracket2]<--[Panic2]
    [Panic2]<--[IO2]
    
    [Parallel2]<--[WeakAsync2]
    [Parallel2]<--[Concurrent2]
    [Concurrent2]<--[Async2]
    [IO2]<--[WeakAsync2]
    [WeakAsync2]<--[Async2]
    
    [WeakTemporal2]<--[Temporal2]

    current hierarchy roots:

    bifunctor:

    standalone:

    Note

    New BIO typeclass checklist:

    [ ] - add syntax to `Syntax2` with the same name as the type
    [ ] - add syntax for new root's `InnerF` with the same name as `InnerF` in `Syntax2`
    [ ] - add new attachments in `RootInstanceLowPriority*`
    [ ] - add conversion from itself to its `InnerF` to `RootInstanceLowPriority*`
          (conversions implicit priority: from most specific `InnerF` to least specific)
    [ ] - add conversion to equivalent cats typeclass if applicable in `CatsConversions`
    [ ] - update hierarchy graph above, re-render SVG
    [ ] - add syntax tests in `SyntaxTest`, runtime tests if applicable
    ,

    Real and raw (direct inheritance) hierarchies differ because of implicit ambiguities caused by inheritance: https://typelevel.org/blog/2016/09/30/subtype-typeclasses.html However, since Scala 3.7, the ambiguity problem has been resolved on Scala 3 using inverted given prioritization: https://contributors.scala-lang.org/t/joining-the-dots-on-recent-implicit-prioritization-changes-and-some-scala-history/6814/3 So, when or if we drop support for Scala 2, we can revisit the design, remove InnerF pattern and make real and raw hierarchy match.

  2. package lifecycle
  3. package quasi

Type Members

  1. trait IzEither extends IzPlatformSyntax
  2. final class Lub[-A, -B, Out] extends AnyVal
  3. trait Renderable[T] extends AnyRef
  4. final class Value[A] extends AnyVal
  5. trait WithRenderableSyntax extends AnyRef

Value Members

  1. object IzEither extends IzEither
  2. object Lub
  3. object Renderable extends WithRenderableSyntax
  4. object Value
  5. object WithRenderableSyntax

Ungrouped