core

kyo.core
opaque object core

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
core.type

Members list

Type members

Classlikes

trait Effect[+E]

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Choices
object Choices
class Defers
object Defers
class Envs[V]
trait IOs
object IOs
class Streams[V]
class Sums[V]
class Vars[V]
class FiberGets
object FiberGets
Show all
abstract class Handler[Command[_], E <: Effect[E], S] extends ResultHandler[Unit, Command, E, Id, S]

Attributes

Supertypes
class ResultHandler[Unit, Command, E, Id, S]
class Object
trait Matchable
class Any
abstract class ResultHandler[State, Command[_], E <: Effect[E], Result[_], S]

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Handler[Command, E, S]
object Safepoint

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Safepoint.type
trait Safepoint[-E]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Types

opaque type <[+T, -S]
type Const[T] = [U] =>> T
type Id[T] = T

Value members

Concrete methods

inline def catching[T, S, U >: T, S2](v: => T < S)(inline pf: PartialFunction[Throwable, U < S2]): U < (S & S2)
inline def eval[T, S, S2](v: => T < S)(inline resume: (Safepoint[S & S2], () => T < (S & S2)) => T < (S & S2), inline done: (Safepoint[S & S2], T) => T < (S & S2), inline suspend: (T < (S & S2)) => T < (S & S2)): T < (S & S2)
inline def transform[T, S, U, S2](v: T < S)(inline k: T => U < S2): U < (S & S2)

Extensions

Extensions

extension [E <: Effect[LazyRef(...)]](e: E)
inline def suspend[T](inline cmd: e.Command[T])(using inline _tag: Tag[E]): T < E
inline def suspend[T, U, S](inline cmd: e.Command[T], inline f: T => U < S)(using inline _tag: Tag[E]): U < (E & S)
extension [E <: Effect[LazyRef(...)]](e: E)
inline def handle[State, Result[_], T, S, S2](handler: ResultHandler[State, e.Command, E, Result, S])(state: State, value: T < (E & S2))(using inline tag: Tag[E], inline flat: Flat[T]): Result[T] < (S & S2)