Я лично не вполне понял последнего примера с конфликтом. Почему Make.pure(1).map(i => Foo(i)) добавляет вдруг Int в глобальный резолвинг
когда ты через имплисит параметры зовешь - у тебя проверится уникальность инстанса.
а так как Make струтурка типа дерева, они все в одну кучу потом слепляются, вычислятеся ордеринг инцилизации и они просто по тэгу из мапки дергают депсы. при текущей реализации должен быть только один кандидат.
можно конечно и такой случай обработать, но не понятно с точки зрения вайринга - наличие более одного инстанса для одного типа это ошибка или так задумано
когда ты через имплисит параметры зовешь - у тебя проверится уникальность инстанса.
а так как Make струтурка типа дерева, они все в одну кучу потом слепляются, вычислятеся ордеринг инцилизации и они просто по тэгу из мапки дергают депсы. при текущей реализации должен быть только один кандидат.
можно конечно и такой случай обработать, но не понятно с точки зрения вайринга - наличие более одного инстанса для одного типа это ошибка или так задумано
Ну типа получается каждый промежучтоный шаг генерирует тег и остаётся навечно