Dsl

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

Type members

Classlikes

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, ValueOrElement]
Companion
object
trait IsKeyword[Keyword, Value] extends HasValueOrElement[Keyword, Value]
object Keyword
object Lift extends LowPriorityLift0
Companion
class
@FunctionalInterface
trait Lift[From, +To] extends From => To
Companion
object
trait PolyCont[-Keyword, Domain, +Value]
object Run
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 Run[Keyword, Domain, Value]

Value members

Concrete methods

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

Givens

Inherited givens

given deriveFunction1Dsl: PolyCont[Keyword, Domain, Value]
Inherited from
LowPriorityDsl1

Extensions

Extensions

extension [Keyword, Value](keyword: Keyword)(using isKeyword: IsKeyword[Keyword, Value])
@inline
def as[Domain](using run: Run[Keyword, Domain, Value]): Domain
@inline
def to[Domain[_]](using run: Run[Keyword, Domain[Value], Value]): Domain[Value]
extension [Keyword, Domain, Value](keyword: Keyword)
@inline
def cpsApply(using dsl: PolyCont[Keyword, Domain, Value])(handler: Value => Domain)(using DummyImplicit): Domain

Inherited extensions

extension [Keyword, Value](from: Keyword)
transparent inline
def unary_!(using inline asKeyword: IsKeyword[Keyword, Value]): Value
Inherited from
LowPriorityDsl0
extension [KeywordOrView, Element](keywordOrView: KeywordOrView)
def foreach(using hasValueOrElement: HasValueOrElement[KeywordOrView, Element])(action: Element => Unit): Foreach[KeywordOrView, Element]
Inherited from
LowPriorityDsl0
def withFilter(using hasValueOrElement: HasValueOrElement[KeywordOrView, Element])(filter: Element => Boolean): WithFilter[KeywordOrView, Element]
Inherited from
LowPriorityDsl0
extension [KeywordOrView, Element](keywordOrView: KeywordOrView)(using hasValueOrElement: HasValueOrElement[KeywordOrView, Element])
def flatMap[Mapped <: Yield[MappedElement], MappedElement](flatMapper: Element => Mapped): FlatMap[KeywordOrView, Element, Mapped, MappedElement]
Inherited from
LowPriorityDsl0
def foreach[Nested <: Do](action: Element => Nested): FlatForeach[KeywordOrView, Element, Nested]
Inherited from
LowPriorityDsl0
def map[Mapped](mapper: Element => Mapped): Map[KeywordOrView, Element, Mapped]
Inherited from
LowPriorityDsl0

Implicits

Implicits

implicit
def derivedTailRecDsl[Keyword, TailRecDomain, Domain, Value](implicit isTailRecDomain: TailRecDomain =:= TailRec[Domain], restDsl: Dsl[Keyword, Domain, Value]): Dsl[Keyword, TailRecDomain, Value]
implicit
def derivedThrowableTailRecDsl[Keyword, TaskDomain, LeftDomain, Value](implicit isTaskDomain: TaskDomain =:= TailRec[LeftDomain] !! Throwable, restDsl: Dsl[Keyword, LeftDomain !! Throwable, Value]): Dsl[Keyword, TaskDomain, Value]

Inherited implicits

implicit
def throwableContinuationDsl[Keyword, ThrowableContinuationDomain, LeftDomain, Value](implicit isThrowableContinuationDomain: ThrowableContinuationDomain =:= LeftDomain !! Throwable, restDsl: Dsl[Keyword, LeftDomain, Value]): Dsl[Keyword, ThrowableContinuationDomain, Value]
Inherited from
LowPriorityDsl0