I am going through some exercises I have invented on case classes and typeclasses. One of the problems I have faced is the following:
object Example extends App {
  sealed trait Serializer[T] {
    def serialize(seq: List[T]): String
  }
  implicit object StringSerializer extends Serializer[String] {
    def serialize(seq: List[String]): String = seq.toString()
  }
  implicit object IntSerializer extends Serializer[Int] {
    def serialize(seq: List[Int]): String = seq.toString()
  }
  case class Marker[T: Serializer](lst: Option[List[T]] = None)
  
  Marker() // ambiguous implicit values: here...
}
Now this gives an error about ambiguous implicit values. I think this is related to a question I have asked before (albeit a different error message):
Type erasure in a nested list with a given context bound
Am I correct in that it is the same process at work here, even though the error message is different?