лямбда-тип будет менее читаемое вроде.
                  
                  
                  type LL[A, B] = Dog
                  
                  
                  
                  
                  
                    implicit val dogProduct = new Product[LL] {
                  
                  
                      override def fst[A](p: LL[A, _]): A = ???
                  
                  
                  
                  
                  
                      override def snd[B](p: LL[_, B]): B = ???
                  
                  
                    }
                  
                  
                
ну как бы не имея реализации нет доказательства того что это имеет смысл
где ты возьмешь это A если у тебя только String и Int
Да, так нельзя сделать, так как A ??? нельзя будет согласовать (разобрали в хаскеле такой пример)
Обсуждают сегодня