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