Есть идеи, почему это не компилируется: https://scastie.scala-lang.org/iPmLyim4Q8aQ2aMNIfj2gA
opaque type Global[Value] = Unit
object Global:
def derived[Value]: Global[Value] = ()
case class Yo() derives Global
❗Playground.Global не является типом класса.
Но это так: https://scastie.scala-lang.org/d148ISEcQ8Swu96lH6JMCw
case class Global[Value]()
object Global:
def derived[Value]: Global[Value] = Global()
case class Yo() derives Global
?
Спасибо, отредактировал по вашему предложению @AndreyTyukin





Как отметил @MartinHH в комментариях, на сегодняшний день это не поддерживается, и открыт билет на улучшение .
Спасибо
Что касается минимизации примера: обратите внимание, что
trait Dimensionsздесь не имеет особого значения: если заменитьDimensions[Value]наUnitвезде, это все равно приведет к тому же поведению; Кроме того,object Dimensions:кажется отвлекающим фактором, и его можно удалить, не теряя сути.