2012-04-01 90 views
0

下面的定義...斯卡拉介紹編譯器和IntelliJ

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] 
} 

...但不infixing類型構造函數時:

def compose[A, B, C](f: B ~> C)(g: A ~> B): A ~> C 

這裏IntelliJ抱怨成員撰寫未定義在fCat

這是Presentation Compiler的限制嗎? IntelliJ的Scala插件?或者我忽略了什麼?

回答