Records encoded as HLists of their value types intersected with the
singleton types of their keys.
Record 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 record types using Scala's
named argument syntax. Values of the type just defined can be created as follows,
val xyz = Record(x = 23, y = "foo", z = true)
xyz('y) // == "foo"
Records encoded as
HLists
of their value types intersected with the singleton types of their keys.Record 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 record types using Scala's named argument syntax. Values of the type just defined can be created as follows,