Просмотр безшовного кода, я наткнулся на это, казалось бы, постороннее {}
здесь и здесь:
trait Witness extends Serializable {
type T
val value: T {}
}
trait SingletonOps {
import record._
type T
def narrow: T {} = witness.value
}
Я почти проигнорировал его как опечатку, поскольку он ничего не делает, но, видимо, он что-то делает. См. Эту фиксацию: https://github.com/milessabin/shapeless/commit/56a3de48094e691d56a937ccf461d808de391961
Я понятия не имею, что он делает. Может кто-нибудь объяснить?