如何在Shapeless'Witness的值中保留路径类型?

时间:2016-06-21 07:55:01

标签: scala shapeless

Witness的“无形”实现中,value的类型value: T { }看起来很像我认为如果T有任何路径依赖类型,它们就是丢失(reference)。

例如,假设我有类似的类型:

trait Field {
  type Out
}

我想做类似以下的事情:

def foo[F <: Field](implicit witness: Witness.Aux[F], show: Show[witness.value.Out]) { ... }

是否可以在无形的见证中保留路径类型?

背景:我正在努力完成this,有人建议this。但是,他们的解决方案不起作用,因为Witness为每个对象提供了一个唯一的隐含,而当两个Field类型具有相同的路径时,他们的解决方案最终会出现隐式冲突。

0 个答案:

没有答案