Scala 3 type class fails: given_... is already defined in scope as class

Viewed 107

If I try to compile the following code in Scala 3, I get a given_Finder_Needle_*: is already defined as class given_Finder_Needle_*

Am I doing something wrong? Is this the right way of implementing type classes in Scala?

trait Finder[Needle, Haystack]:
  def get: Needle

given[Needle, Tail <: Tuple]: Finder[Needle, Needle *: Tail] with
  def get: Needle = ???

given[Needle, Head, Tail <: Tuple] (using finder: Finder[Needle, Tail]): Finder[Needle, Head *: Tail] with
  def get: Needle = finder.get
0 Answers
Related