Dsl

object Dsl extends LowPriorityDsl0
trait LowPriorityDsl0
trait LowPriorityDsl1
class Object
trait Matchable
class Any

Type members

Classlikes

object Composed
object Derived

Includes Dsls derived from other Dsls for the same Keyword in a simpler domain. For example, a Dsl.Derived.StackUnsafe for keywords.Yield in the domain Vector[Int] !! String is derived from the Dsl for keywords.Yield in the domain Vector[Int].

Includes Dsls derived from other Dsls for the same Keyword in a simpler domain. For example, a Dsl.Derived.StackUnsafe for keywords.Yield in the domain Vector[Int] !! String is derived from the Dsl for keywords.Yield in the domain Vector[Int].

object For
Companion
class
sealed
trait For

The AST returned from a for...yield or a for...do expression.

The AST returned from a for...yield or a for...do expression.

Note that a For does not directly support !-notation. Instead, keywords.Each.ToView is used to convert a For to a Keyword that supports !-notation.

Companion
object
Companion
class
sealed
trait HasValueOrElement[KeywordOrView, Element]
Companion
object
trait IsKeyword[Keyword, Value] extends HasValueOrElement[Keyword, Value]
object IsStackSafe extends LowPriority0
Companion
class
trait IsStackSafe[Domain]
Companion
object
object Keyword
object Lift extends LowPriorityLift0
Companion
class
@FunctionalInterface
trait Lift[From, +To] extends From => To
Companion
object
object Original
object Run
object Searching extends AtomicThenStackSafeDerivedThenComposedThenStackUnsafeDerived
object TryCatch extends LowPriorityTryCatch
Companion
class
@implicitNotFound("The `try` ... `catch` expression cannot contain !-notation inside a function that returns ${OuterDomain}.")
trait TryCatch[Value, OuterDomain, BlockDomain]
Companion
object
Companion
class
@implicitNotFound("The `try` ... `catch` ... `finally` expression cannot contain !-notation inside a function that returns ${OuterDomain}.")
trait TryCatchFinally[Value, OuterDomain, BlockDomain, FinalizerDomain]

The type class to support try ... catch ... finally expression for OutputDomain.

The type class to support try ... catch ... finally expression for OutputDomain.

!-notation is allowed by default for ? !! Throwable and Future domains, with the help of this type class.

Companion
object
object TryFinally extends LowPriorityTryFinally
Companion
class
@implicitNotFound("The `try` ... `finally` expression cannot contain !-notation inside a function that returns ${OuterDomain}.")
trait TryFinally[Value, OuterDomain, BlockDomain, FinalizerDomain]
Companion
object

Types

opaque type Composed[-Keyword, Domain, +Value]

An Dsl for a control flow Keyword, composed of other Dsls for subtree of the Keyword. For example, a Dsl.Composed for keywords.If is composed of the Dsl for the condition, the Dsl for the then clause, and the Dsl for the else clause.

An Dsl for a control flow Keyword, composed of other Dsls for subtree of the Keyword. For example, a Dsl.Composed for keywords.If is composed of the Dsl for the condition, the Dsl for the then clause, and the Dsl for the else clause.

opaque type Original[-Keyword, Domain, +Value]

An original Dsl for a Keyword, i.e. neither Derived.StackSafe nor Derived.StackUnsafe nor Composed.

An original Dsl for a Keyword, i.e. neither Derived.StackSafe nor Derived.StackUnsafe nor Composed.

opaque type Run[Keyword, Domain, Value]
opaque type Searching[-Keyword, Domain, +Value]

Value members

Concrete methods

def apply[Keyword, Domain, Value]: (Keyword, Value => Domain) => Domain =:= (Keyword, Domain) => Value
@compileTimeOnly("This method must be called only inside a `reset` or `*` code block.")
def shift[Keyword, Value](keyword: Keyword): Value

Givens

Givens

given StackSafe_Keyword_TailRec_Value: StackSafe[Keyword, TailRec[Domain], Value]
given StackUnsafe_Keyword_TailRec_Value: StackUnsafe[Keyword, TailRec[Domain], Value]
given `StackSafe_Keyword_!!_TailRecValue`: StackSafe[Keyword, TailRec[LeftDomain] !! Throwable, TailRecValue]
given `StackUnsafe_Keyword_!!_TailRecValue`: StackUnsafe[Keyword, TailRec[LeftDomain] !! Throwable, TailRecValue]

Inherited givens

given StackSafe_Keyword_Function_Value: StackSafe[Keyword, State => Domain, Value]
Inherited from
LowPriorityDsl1
given StackUnsafe_Keyword_Function_Value: StackUnsafe[Keyword, State => Domain, Value]
Inherited from
LowPriorityDsl1
given `StackSafe_Keyword_!!_Value`: StackSafe[Keyword, LeftDomain !! Throwable, Value]
Inherited from
LowPriorityDsl0
given `StackUnsafe_Keyword_!!_Value`: StackUnsafe[Keyword, LeftDomain !! Throwable, Value]
Inherited from
LowPriorityDsl0

Extensions

Extensions

extension [Keyword, Value](from: Keyword)
transparent inline
def unary_!(using inline asKeyword: IsKeyword[Keyword, Value]): Value
extension [Keyword, Value](keyword: Keyword)
@inline
def cpsApply[Domain](using dsl: Searching[Keyword, Domain, Value])(handler: Value => Domain): Domain