sagen, wir haben folgende MethodeKarte für allgemeinen hList
def func[T <: HList](hlist: T, poly: Poly)
(implicit mapper : Mapper[poly.type, T]): Unit = {
hlist map poly
}
und benutzerdefinierten Poly
object f extends (Set ~>> String) {
def apply[T](s : Set[T]) = s.head.toString
}
So kann ich diese func
wie
func(Set(1, 2) :: Set(3, 4) :: HNil, f)
In meinem Code verwende Ich habe kleine Zahl von Polies und eine große Anzahl von func
Invokationen. Zu diesem Zweck habe ich versucht, poly: Poly
zu impliziten Parametern zu bewegen und bekam Nachricht erwartet
illegal dependent method type: parameter appears in the type of another parameter in the same section or an earlier one
Wie könnte ich oder verlängern ändern poly: Poly
Parameter diese Fehler zu vermeiden (Ich brauche Typen Unterschrift func[T <: HList](...)
zu halten)?
Großer Trick, danke! –