A <:< { def run(): R })? Почему не просто
implicit class Ops[T](env: {def run(): T}) {
def go = env.run()
}
?
С evidence можно написать value class и тогда будет создан только один инстанс обёртки, у которого будет кешироваться получение метода через рефлексию. А в твоём примере на каждый вызов будет через рефлексию получаться нужный метод, так как каждый раз будет создаваться новый экземпляр обёртки
Обсуждают сегодня