Я пробую литеральные типы из Scala 2.13, и я сталкиваюсь со следующей ошибкой:
scala> def double[A <: Singleton] = valueOf[A] ^ error: No singleton value available for A.
Не могли бы вы объяснить, почему?
Я не думаю, что это работает так, а скорее со связанным классом типов ValueOf:
ValueOf
object Foo def foo[A : ValueOf] = valueOf[A] scala> foo[Foo.type] res2: Foo.type = Foo$@1c105c3a
Я не совсем уверен в том, что вы пытаетесь, но вот пример из doc :
def foo[T](implicit v: ValueOf[T]): T = v.value
A scala.ValueOf[T] класс типов и соответствующий оператор scala.Predef.valueOf[T] были добавлены, давая уникальное значение типов с одним жителем
scala.ValueOf[T]
scala.Predef.valueOf[T]