型崩れを使用してのADTの列挙に関する@TravisBrownによって上空啓発questionに続いて、私は次のコードスニペットが残っています:私は持っていないように私はメソッド内でこれをカプセル化したい暗黙の引数:関数シグネチャをエンコードする方法は?
implicitly[EnumerableAdt[Foo]].values
各呼び出しの後に.values
に(これは私にとってはよりクリーンなAPIのようです)。 しかし、私はそれを正しくするように見えることはできません。 implicitly[EnumerableAdt[Foo]]
をカプセル化しようとすると、暗黙の解決エラーが発生します。
私にはほとんど意味を成していた私は何をしようとしたが、例えば、だった:私にしてもあまり意味をなさずにev
確か
def imply[T](implicit ev: T):Set[T] = implicitly[EnumerableAdt[T]].values
。
私はタイプレベルプログラミングの専門家ではありません。
素晴らしいことですが、それは機能します! – Yaneeve