Dsl

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

Type members

Classlikes

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

Deprecated classlikes

@deprecated("Use bangnotation.reset instead", "Dsl.scala 2.0.0")
final
class reset extends ResetAnnotation with StaticAnnotation with TypeConstraint

An annotation to explicitly perform reset control operator on a code block.

An annotation to explicitly perform reset control operator on a code block.

Note

This annotation can be automatically added if ResetEverywhere compiler plug-in is enabled.

Deprecated
@deprecated("Use bangnotation.reset instead", "Dsl.scala 2.0.0")
final
class shift extends StaticAnnotation

An annotation to mark a method is a shift control operator.

An annotation to mark a method is a shift control operator.

Deprecated

Types

type !![R, +A] = R => A
type Continuation[R, +A] = A => R => R
opaque type Typed[Keyword, Value]

A type annotated keyword

A type annotated keyword

Value members

Concrete methods

def IsKeyword[Keyword, Value](using IsKeyword[Keyword, Value]): IsKeyword[Keyword, Value]
def apply[Keyword, Domain, Value](implicit typeClass: Dsl[Keyword, Domain, Value]): Dsl[Keyword, Domain, Value]

Concrete fields

Givens

Inherited givens

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

Extensions

Extensions

extension [Keyword, Domain, Value](keyword: Keyword)
@inline
def cpsApply(using dsl: PolyCont[Keyword, Domain, Value])(handler: Value => Domain)(using DummyImplicit): Domain

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