Я пытаюсь понять некоторый автоматически сгенерированный компилятором scala код, но я не знаю, что искать.
У меня есть следующий класс:
trait Arrow1[F[_, _]]
abstract class Test {
def f1[F[_, _] : Arrow1, A, B, C](fa: F[A,B], fb: F[A, C]): F[A, (B, C)]
def f2[A: Seq, B](a: A): Boolean
}
После того, как я декомпилировал файл класса, сигнатура методов f1 и f2 выглядит так:
public abstract class Test {
public abstract <F, A, B, C> F f1(F var1, F var2, Arrow1<F> var3);
public abstract <A, B> boolean f2(A var1, Seq<A> var2);
}
Как видите, у методов есть дополнительный параметр. Где я могу найти документацию об этом обозначении параметра типа метода F[_, _] : Arrow1 ?