izumi.functional

Members list

Packages

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 (rendered: https://izumi.7mind.io/bio/media/algebras.svg):

[cats.effect.*]<:--[CatsConversions]

[Fork2]<:--[Fiber2]

[BlockingIO2]

[Primitives2]

[Primitives2]<:--[Ref2]
[Primitives2]<:--[Semaphore2]
[Primitives2]<:--[Promise2]

[PrimitivesM2]
[PrimitivesM2]<:--[RefM2]
[PrimitivesM2]<:--[Mutex2]

[PrimitivesLocal2]
[PrimitivesLocal2]<--[FiberRef2]
[PrimitivesLocal2]<--[FiberLocal2]

[Entropy1]<:--[Entropy2]
[Clock1]<:--[Clock2]

[Scheduler2]

[UnsafeRun2]

Raw inheritance hierarchy (rendered: https://izumi.7mind.io/bio/media/bio-hierarchy.svg):

[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:

Attributes

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.

Type members

Classlikes

trait IzEither extends IzPlatformSyntax

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Show all
Known subtypes
object IzEither
object preamble
object IzEither extends IzEither

Attributes

Companion
trait
Supertypes
trait IzEither
class Object
trait Matchable
class Any
Show all
Self type
IzEither.type
object Lub

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Lub.type
final class Lub[-A, -B, Out] extends AnyVal

Attributes

Companion
object
Supertypes
class AnyVal
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Renderable.type
trait Renderable[T]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
final class Value[A] extends AnyVal

Attributes

Companion
object
Supertypes
class AnyVal
trait Matchable
class Any
object Value

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Value.type

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Renderable