Discriminated unions encoded as Coproducts of their value types intersected with
the singleton types of their keys.
Union types may be written using a relatively concise syntax thanks to a trick
due to Denys Shabalin (@den_sh) and Eugene Burmako (@xeno_by). We use a
combination of selectDynamic and backticks to embed a type in a path which
appears to the compiler as stable,
The use of singleton-typed Symbols as keys would make this type extremely
laborious to write out by hand.
There is also a mechanism for creating values of union types using Scala's
named argument syntax. Values of the type just defined can be created as follows,
val y = Union[Xyx](y = "foo")
y.get('y) // == Some("foo")
Linear Supertypes
Dynamic, AnyRef, Any
Ordering
Alphabetic
By inheritance
Inherited
Union
Dynamic
AnyRef
Any
Hide All
Show all
Visibility
Public
All
Value Members
final def!=(arg0: Any): Boolean
Definition Classes
AnyRef → Any
final def##(): Int
Definition Classes
AnyRef → Any
final def==(arg0: Any): Boolean
Definition Classes
AnyRef → Any
macro defapplyDynamicNamed[U <: Coproduct](method: String)(elems: Any*): U
Discriminated unions encoded as
Coproducts
of their value types intersected with the singleton types of their keys.Union types may be written using a relatively concise syntax thanks to a trick due to Denys Shabalin (@den_sh) and Eugene Burmako (@xeno_by). We use a combination of
selectDynamic
and backticks to embed a type in a path which appears to the compiler as stable,The use of singleton-typed
Symbols
as keys would make this type extremely laborious to write out by hand.There is also a mechanism for creating values of union types using Scala's named argument syntax. Values of the type just defined can be created as follows,