После удивительно просвещенного question by @TravisBrown относительно перечисления ADT с использованием бесформенного, я оставляю следующий фрагмент кода:
implicitly[EnumerableAdt[Foo]].values
Я хотел бы инкапсулировать это в метод, чтобы после каждого вызова мне не приходилось .values
(для меня это выглядит как чистый API). Но я не могу понять. Всякий раз, когда я пытаюсь инкапсулировать implicitly[EnumerableAdt[Foo]]
, я получаю неявные ошибки разрешения.
То, что я пробовал, что имело для меня наибольшее значение, было, например:
def imply[T](implicit ev: T):Set[T] = implicitly[EnumerableAdt[T]].values
конечно, без ev
сделал меня еще менее понятным.
Я не эксперт в программировании уровня.