找不到隐式参数的值(可扩展记录)

Cannot find value for implicit parameters (extensible records)

我有一个如下所示的函数:

def fun[T <: HList](l: T)(implicit k: HKernelAux[T], ft: FromTraversable[T]) = ???

当我传递 HList 类型的参数时,此函数起作用。如果我传递一个可扩展记录,它只是一个带有标签的 HList,则无法找到隐式参数的值。这是为什么?有没有一种方法可以使该函数适用于 HLists 和可扩展记录,或者我可以提供另一个适用于可扩展记录的函数吗?

问题是找不到 FieldType[Witness.`'key`.T, ValueType]Typeable 实例。

尝试修改函数:

import shapeless.{HList, HNil}
import shapeless.ops.hlist.HKernelAux
import shapeless.ops.traversable.FromTraversable
import shapeless.ops.record.Values

def fun[T <: HList, T1 <: HList](l: T)(implicit v: Values.Aux[T, T1], k: HKernelAux[T1],  ft: FromTraversable[T1]) = {
  //use l.values instead of l
}

用法:

import shapeless.syntax.singleton._
fun('a ->> 1 :: 'b ->> "x" :: HNil) // compiles