私は合計タイプ、マッピングを持っています:
sealed trait Mapping
final case class XMapping(a:String)
final case class FallbackMapping(mappings: List[Mapping])
次のように定義された型クラスがあります。
final case class Param(x:String)
trait ParameterLoader[T] {
def load(mapping:T) : List[Param]
}
いくつかの例では:
object DefaultParameterLoaders {
implicit val xParameterLoader= new QueryParameterLoader[XMapping] {
override def load(mapping: XMapping): List[Param] = List(Param(mapping.a))
}
implicit val fallbackParameterLoader = new ParameterLoader[FallbackMapping] {
override def load(mapping: FallbackMapping): List[Param] =
mapping.mappings.flatMap(x => ???)
}
}
上記の flatMap に暗黙的なインスタンスを渡す方法が見つかりません。ParameterLoader[Mapping] のインスタンスが見つからないというエラーが表示されます。スコープ内にある型クラスのインスタンスを使用する必要があることをコンパイラに伝える方法はありますか?