Я очень плохо знаком с бесформенным и изо всех сил пытаюсь получить Tupler
для моего HList
. Вот упрощенный пример:
object Builder {
import shapeless.ops.hlist.Tupler.hnilTupler
val empty: Builder[HNil] = new Builder[HNil](HNil)
}
class Builder[L <: HList: Tupler](list: L) {
def add[T](value: T): Builder[T :: L] = new Builder[T :: L](value :: list)
def tuple: Tupler[L]#Out = list.tupled
}
Строка def add[T](value: T): Builder[T :: L] = new Builder[T :: L](value :: list)
не компилируется, поскольку нет неявного Tupler[T :: L]
, и я не могу понять, следует ли выводить следующую из предыдущей. Есть мысли?