Any idea why this does not compile: https://scastie.scala-lang.org/5GeWg7HIRmCun2K1tO1bwA
trait Dimensions[Value]
object Dimensions:
given [Value: Dimensions.Global]: Dimensions[Value] =
summon[Dimensions.Global[Value]]
opaque type Global[Value] = Dimensions[Value]
object Global:
inline def derived[Value]: Global[Value] = ???
case class Yo() derives Dimensions.Global
❗Playground.Dimensions.Global is not a class type
But this does: https://scastie.scala-lang.org/e9mCnyHlQUyMDVHA7eA3Qg
trait Dimensions[Value]
object Dimensions:
given [Value: Dimensions.Global]: Dimensions[Value] =
summon[Dimensions.Global[Value]].dimensions
case class Global[Value](dimensions: Dimensions[Value]) extends AnyVal
object Global:
inline def derived[Value]: Global[Value] = ???
case class Yo() derives Dimensions.Global
?