Effect

turbolift.Effect
See theEffect companion trait
object Effect

Attributes

Companion
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Effect.type

Members list

Type members

Classlikes

final class Combine2[Fx1 <: Signature, Fx2 <: Signature](val fx1: Fx1, val fx2: Fx2)

API for defining custom handlers.

API for defining custom handlers.

Composition of 2 effects, for the purpose of sharing an Interpreter.

Attributes

Supertypes
class Object
trait Matchable
class Any
final class Combine3[Fx1 <: Signature, Fx2 <: Signature, Fx3 <: Signature](val fx1: Fx1, val fx2: Fx2, val fx3: Fx3)

API for defining custom handlers.

API for defining custom handlers.

Composition of 3 effects, for the purpose of sharing an Interpreter.

Attributes

Supertypes
class Object
trait Matchable
class Any
final class Combine4[Fx1 <: Signature, Fx2 <: Signature, Fx3 <: Signature, Fx4 <: Signature](val fx1: Fx1, val fx2: Fx2, val fx3: Fx3, val fx4: Fx4)

API for defining custom handlers.

API for defining custom handlers.

Composition of 4 effects, for the purpose of sharing an Interpreter.

Attributes

Supertypes
class Object
trait Matchable
class Any
final class Impl[Fx](sigs: Array[Signature])

API for defining custom handlers.

API for defining custom handlers.

Helper class providing type definitions to be used for implementing Interpreters for this effect. An instance of [Impl]] is available as Effect.impl value.

Type parameters

Fx

The effect we are defining interpreter/handler for.

Attributes

Supertypes
class Object
trait Matchable
class Any
abstract class Polymorphic_+[Fx <: (Effect), Q](val monomorphic: Fx[Q])

API for defining custom effects.

API for defining custom effects.

Allows to "polymorphize" an effect that has a type parameter (e.g. Reader[R], Error[E]). //@#@TODO link to microsite

The Polymorphic_+ variant is for effects with single type parameter. The parameter will be covariantly inferred at call sites.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
abstract class Polymorphic_++[Fx <: (Effect), Q1, Q2](val monomorphic: Fx[Q1, Q2])

API for defining custom effects.

API for defining custom effects.

Like Polymorphic_+, but for effects with 2 parameters.

Attributes

Supertypes
class Object
trait Matchable
class Any
abstract class Polymorphic_-[Fx <: (Effect), Q](val monomorphic: Fx[Q])

API for defining custom effects.

API for defining custom effects.

Allows to "polymorphize" an effect that has a type parameter (e.g. Reader[R], Error[E]). //@#@TODO link to microsite

Polymorphic_- is for effects with single type parameter. The parameter will be contravariantly inferred at call sites.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Error
object Writer
abstract class Polymorphic_-+[Fx <: (Effect), Q1, Q2](val monomorphic: Fx[Q1, Q2])

API for defining custom effects.

API for defining custom effects.

Like Polymorphic_+, but for effects with 2 parameters.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
abstract class Polymorphic_=[Fx <: (Effect), Q](val monomorphic: Fx[Q])

API for defining custom effects.

API for defining custom effects.

Allows to "polymorphize" an effect that has a type parameter (e.g. Reader[R], Error[E]). //@#@TODO link to microsite

Polymorphic_= is for effects with single type parameter. The parameter will be invariantly inferred at call sites.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object State

Value members

Experimental methods

inline def boilerplate[Z <: Signature]: Effect[Z] & Z

API for defining custom effects.

API for defining custom effects.

Macro generating "the boilerplate" part. For each abstract method defined in the signature a final override method is generated, with body consisting of perform call.

Usage:

val MyGoogle = Effect.boilerplate[MyGoogleSignature]
type MyGoogle = MyGoogle.type // optional

Attributes

Experimental
true