Handler

object Handler extends HandlerExtensions

Defines convenience extensions and type aliases for Handler.

Companion:
class
trait Sum
trait Mirror
trait HandlerExtensions
class Object
trait Matchable
class Any
Handler.type

Type members

Types

type Const[Result, Elim, Intro] = Handler[[X] =>> Result, Elim, Intro]

Alias for handler, whose Result[_] is a type-level constant function.

Alias for handler, whose Result[_] is a type-level constant function.

type Free[Result[_], Elim] = Handler[Result, Elim, Any]

Alias for handler that has no dependencies (introduces no new effects).

Alias for handler that has no dependencies (introduces no new effects).

type FreeConst[Result, Elim] = Handler[[X] =>> Result, Elim, Any]

Alias for handler, that is both Free and Const.

Alias for handler, that is both Free and Const.

type FreeId[Elim] = Handler[[X] =>> X, Elim, Any]

Alias for handler, that is both Free and Id.

Alias for handler, that is both Free and Id.

type Id[Elim, Intro] = Handler[[X] =>> X, Elim, Intro]

Alias for handler, whose Result[_] is type-level identity.

Alias for handler, whose Result[_] is type-level identity.

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from:
Mirror

Value members

Concrete methods

def flatHandle[F[_], L, N1, N2](h: Computation[Handler[F, L, N1], N2]): Handler[F, L, N1 & N2]

Absorbs effects requested to create the handler, as the new handler's additional dependencies.

Absorbs effects requested to create the handler, as the new handler's additional dependencies.

Extensions

Inherited extensions

extension [L, N](thiz: Handler[Option, L, N])
def getOrDie(message: => String): Id[L, N]
Inherited from:
HandlerExtensions
def getOrElse(default: => Nothing): Id[L, N]
Inherited from:
HandlerExtensions
def toEither[E](e: => E): Handler[[_] =>> Either[E, _$8], L, N]
Inherited from:
HandlerExtensions
def toTry(e: => Throwable): Handler[Try, L, N]
Inherited from:
HandlerExtensions
def toVector: Handler[Vector, L, N]
Inherited from:
HandlerExtensions
def unsafeGet: Id[L, N]
Inherited from:
HandlerExtensions
@targetName("flattenOptions")
def |||![L2, N2](that: Handler[Option, L2, N2]): Handler[Option, L & L2, N & N2]
Inherited from:
HandlerExtensions
extension [S, L, N](thiz: Handler[Tuple2, L, N])
def ***![S2, S3, L2, N2](that: Handler[Tuple2, L2, N2])(using ET: ExtendTuple[S, S2, S3]): Handler[Tuple2, L & L2, N & N2]
Inherited from:
HandlerExtensions
def dropState: Id[L, N]
Inherited from:
HandlerExtensions
def eval: Id[L, N]
Inherited from:
HandlerExtensions
def exec: Const[S, L, N]
Inherited from:
HandlerExtensions
def flatMapState[S2, U](f: S => Computation[S2, U]): Handler[Tuple2, L, N & U]
Inherited from:
HandlerExtensions
def flatTapState[S2, U](f: S => Computation[Unit, U]): Handler[Tuple2, L, N & U]
Inherited from:
HandlerExtensions
def justState: Const[S, L, N]
Inherited from:
HandlerExtensions
def mapState[S2](f: S => S2): Handler[Tuple2, L, N]
Inherited from:
HandlerExtensions
extension [E, L, N](thiz: Handler[[_] =>> Either[E, _$10], L, N])
def getOrDie(message: E => String): Id[L, N]
Inherited from:
HandlerExtensions
def getOrElse(default: E => Nothing): Id[L, N]
Inherited from:
HandlerExtensions
def mapLeft[E2](f: E => E2): Handler[[_] =>> Either[E2, _$11], L, N]
Inherited from:
HandlerExtensions
def toOption: Handler[Option, L, N]
Inherited from:
HandlerExtensions
def toTry(implicit ev: E <:< Throwable): Handler[Try, L, N]
Inherited from:
HandlerExtensions
@targetName("flattenEithers")
def |||![E2, L2, N2](that: Handler[[_] =>> Either[E2, _$12], L2, N2]): Handler[[_] =>> Either[E | E2, _$13], L & L2, N & N2]
Inherited from:
HandlerExtensions