следующее определение ...
object Category {
def fCat = new Category[Function1] {
def compose[A, B, C](f: (B) => C)(g: (A) => B) = { a: A => f(g(a)) }
}
}
... действительно, если Category
определено как:
trait Category[~>[_, _]] {
def compose[A, B, C](f: ~>[B, C])(g: ~>[A, B]): ~>[A, C]
}
... но не при добавлении конструктора типа:
def compose[A, B, C](f: B ~> C)(g: A ~> B): A ~> C
Здесь IntelliJ жалуется, что составление элемента не определено в fCat
.
Это ограничение Презентационного Компилятора? Плагин для IntelliJ Scala? Или я что-то упускаю?