I have this code:
final case class Example[State <: ValidationState](a: String, b: Int) derives JsonDecoder
object Example {
type UnvalidatedExample = Example[ValidationState.Unvalidated]
type ValidatedExample = Example[ValidationState.Validated]
enum ValidationState {
case Unvalidated, Validated
}
object ValidationState {
type Unvalidated = Unvalidated.type
type Validated = Validated.type
}
// Doesn't compile
given JsonDecoder[UnvalidatedExample] = JsonDecoder[Example[?]].asInstanceOf[JsonDecoder[UnvalidatedExample]]
}
which fails to compile with error:
No given instance of type zio.json.JsonDecoder[com.example.Example[?]] was found for parameter a of method apply in object JsonDecoder.