package functional
- Alphabetic
- Public
- Protected
Package Members
- 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
InnerFpattern and make real and raw hierarchy match.
- package lifecycle
- package quasi
Type Members
- trait IzEither extends IzPlatformSyntax
- final class Lub[-A, -B, Out] extends AnyVal
- trait Renderable[T] extends AnyRef
- final class Value[A] extends AnyVal
- trait WithRenderableSyntax extends AnyRef
Value Members
- object IzEither extends IzEither
- object Lub
- object Renderable extends WithRenderableSyntax
- object Value
- object WithRenderableSyntax