zikyo

package zikyo

Members list

Type members

Classlikes

object KYO

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
KYO.type
final class ProvideAsPartiallyApplied[A, S, E, E1, ER](effect: A < (S & Envs[E]))(using t: Tag[Envs[E1]], he: HasEnvs[E1, E] { type Remainder = ER; }, f: Flat[A < (S & Envs[E])])

Attributes

Supertypes
class Object
trait Matchable
class Any

Extensions

Extensions

extension [A, S](effect: A < S)
def *>[A1, S1](next: => A1 < S1): A1 < (S & S1)
def <*[A1, S1](next: => A1 < S1): A < (S & S1)
def <*>[A1, S1](next: => A1 < S1): (A, A1) < (S & S1)
def as[A1, S1](value: => A1 < S1): A1 < (S & S1)
def debug: A < (S & IOs)
def debug(prefix: => String): A < (S & IOs)
def delayed[S1](duration: Duration < S1): A < (S & S1 & Fibers)
def discard: Unit < S
def explicitThrowable: A < (S & Aborts[Throwable])
def forever: Nothing < S
def repeat(policy: Policy)(using Flat[A < S]): A < (S & Fibers)
def repeat[S1](limit: => Int < S1)(using Flat[A < S]): A < (S & S1)
def repeat[S1](backoff: Int => Duration, limit: => Int < S1)(using Flat[A < S]): A < (S & S1 & Fibers)
def repeatUntil[S1](fn: A => Boolean < S1)(using Flat[A < S]): A < (S & S1 & Fibers)
def repeatUntil[S1](fn: (A, Int) => (Boolean, Duration) < S1)(using Flat[A < S]): A < (S & S1 & Fibers)
def repeatWhile[S1](fn: A => Boolean < S1)(using Flat[A < S]): A < (S & S1 & Fibers)
def repeatWhile[S1](fn: (A, Int) => (Boolean, Duration) < S1)(using Flat[A < S]): A < (S & S1 & Fibers)
def retry(policy: Policy)(using Flat[A < S]): A < (S & Fibers)
def retry[S1](n: => Int < S1)(using Flat[A < S]): A < (S & S1 & Fibers)
def retry[S1](backoff: Int => Duration, n: => Int < S1)(using Flat[A < S]): A < (S & S1 & Fibers)
def tap[S1](f: A => Any < S1): A < (S & S1)
def unless[S1](condition: Boolean < S1): A < (S & S1 & Options)
def when[S1](condition: => Boolean < S1): A < (S & S1 & Options)
extension [A, S, E](effect: A < (S & Aborts[E]))
def abortsToOptions(using Tag[Aborts[E]], ClassTag[E], Flat[A < (S & Aborts[E])]): A < (S & Options)
def abortsToSeqs(using Tag[Aborts[E]], ClassTag[E], Flat[A < (S & Seqs)]): A < (S & Seqs)
def catchAborts[A1 >: A, S1](fn: E => A1 < S1)(using Tag[Aborts[E]], ClassTag[E], Flat[A < (S & Aborts[E])]): A1 < (S & S1)
def catchAbortsPartial[A1 >: A, S1](fn: PartialFunction[E, A1 < S1])(using Tag[Aborts[E]], ClassTag[E], Flat[A < (S & Aborts[E])]): A1 < (S & S1 & Aborts[E])
def catchSomeAborts[E1](using ct: ClassTag[E1], ha: HasAborts[E1, E], t: Tag[Aborts[E1]], f: Flat[A < (S & Aborts[E])]): [A1 >: A, S1] => (x$1: E1 => A1 < S1) => A1 < (S & S1 & ha.Remainder)
def catchSomeAbortsPartial[E1](using ct: ClassTag[E1], ha: HasAborts[E1, E], t: Tag[Aborts[E1]], f: Flat[A < (S & Aborts[E])]): [A1 >: A, S1] => (x$1: PartialFunction[E1, A1 < S1]) => A1 < (S & S1 & Aborts[E])
def handleAborts(using Tag[Aborts[E]], ClassTag[E], Flat[A < (S & Aborts[E])]): Either[E, A] < S
def handleSomeAborts[E1 : ClassTag](implicit evidence$1: ClassTag[E1], ha: HasAborts[E1, E], t: Tag[Aborts[E1]], f: Flat[A < (S & Aborts[E])]): Either[E1, A] < (S & ha.Remainder)
def implicitThrowable(using f: Flat[A < (S & Aborts[E])], ha: HasAborts[Throwable, E]): A < (S & ha.Remainder)
def someAbortsToOptions[E1 : ClassTag](implicit evidence$1: ClassTag[E1], ha: HasAborts[E1, E], t: Tag[Aborts[E1]], f: Flat[A < (S & Aborts[E])]): A < (S & ha.Remainder & Options)
def someAbortsToSeqs[E1 : Tag](implicit evidence$1: Tag[E1], evidence$2: ClassTag[E1], ha: HasAborts[E1, E], t: Tag[Aborts[E1]], f: Flat[A < (S & Aborts[E])]): A < (S & ha.Remainder & Seqs)
def swapAborts(using Tag[Aborts[E]], Tag[Aborts[A]], ClassTag[E], ClassTag[A], Flat[A < (S & Aborts[E])]): E < (S & Aborts[A])
def swapSomeAborts[E1 : ClassTag](implicit evidence$1: ClassTag[E1], ha: HasAborts[E1, E], te: Tag[Aborts[E]], ta: Tag[Aborts[A]], te1: Tag[Aborts[E1]], cte: ClassTag[E], cta: ClassTag[A], f: Flat[A < (S & Aborts[E])]): E1 < (S & ha.Remainder & Aborts[A])
extension [A, S](effect: A < (S & Options))
def catchOptions[A1 >: A, S1](orElse: => A1 < S1)(using Flat[A]): A1 < (S & S1)
def handleOptions(using Flat[A < (S & Options)]): Option[A] < S
def optionsToAborts[E, S1](failure: => E < S1)(using Flat[A], Tag[Aborts[E]]): A < (S & S1 & Aborts[E])
def optionsToSeqs(using Flat[A]): A < (S & Seqs)
def optionsToThrowable(using Flat[A], Tag[Aborts[Throwable]]): A < (S & Aborts[Throwable])
def optionsToUnit(using Flat[A]): A < (S & Aborts[Unit])
def swapOptions(using Flat[A]): Unit < (S & Options)
def swapOptionsAs[A1, S1](value: => A1 < S1)(using Flat[A]): A1 < (S & S1 & Options)
extension [A, S, E](effect: A < (S & Envs[E]))
def provide[E1, S1, SR](dependency: E1 < S1)(using fl: Flat[A < (S & Envs[E])], he: HasEnvs[E1, E] { type Remainder = SR; }, t: Tag[Envs[E1]]): A < (S & S1 & SR)
def provideAs[E1](using f: Flat[A < (S & Envs[E])], t: Tag[Envs[E1]], he: HasEnvs[E1, E]): ProvideAsPartiallyApplied[A, S, E, E1, he.Remainder]
extension [A, S](effect: A < (S & Seqs))
def filterSeqs[S1](fn: A => Boolean < S1): A < (S & S1 & Seqs)
def handleSeqs(using Flat[A < (S & Seqs)]): Seq[A] < S
def seqsToAborts[E, S1](error: => E < S1)(using Flat[A < (S & Seqs)], Tag[Aborts[E]]): A < (S & S1 & Aborts[E])
def seqsToOptions(using Flat[A < (S & Seqs)]): A < (S & Options)
def seqsToThrowable(using Flat[A]): A < (S & Aborts[Throwable])
def seqsToUnit(using Flat[A]): A < (S & Aborts[Unit])
extension [A, S](effect: A < (S & Fibers))
def fork(using ev: S => IOs, f: Flat[A < (Fibers & S)]): Fiber[A] < (S & IOs)
def forkScoped(using ev: S => IOs, f: Flat[A < (Fibers & S)]): Fiber[A] < (S & IOs & Resources)
extension [A](effect: A < Fibers)
def &>[A1](next: A1 < Fibers)(using Flat[A < Fibers], Flat[A1 < Fibers]): A1 < Fibers
def <&[A1](next: A1 < Fibers)(using Flat[A < Fibers], Flat[A1 < Fibers]): A < Fibers
def <&>[A1](next: A1 < Fibers)(using Flat[A < Fibers], Flat[A1 < Fibers]): (A, A1) < Fibers
extension [A, S](effect: A < (S & Consoles))
def provideDefaultConsole: A < (S & IOs)
extension [A, S](fiber: Fiber[A] < S)
def awaitCompletion(using Flat[A < (S & Fibers)]): Unit < (S & Fibers)
def join: A < (S & Fibers)