当我使用从一个f-bound类型到另一个f-bound类型的投影时,我得到一个我不明白的类型错误。这可能是related to an earlier question,但我不确定。 的设置很简单: trait Foo[F <: Foo[F]] {
type I <: Foo[I]
}
也就是说,我有一个包含投影到另一个类似系统的系统F。 好吧,现在我需要做的是,给出F,能够使用F#
我将如何转换: trait Foo[A <: Foo[A]]
到类型成员? 即,我想沿着以下线的东西: trait Foo {
type A <: Foo {type A = ???}
}
,但我有,因为名称的是类型细化中已经采取了难度。这个问题是相似的(和衍生):F-bounded quantification through type member instead of t
为什么以下工作不起作用? scala> abstract class Foo[B<:Foo[B]]
defined class Foo
scala> class Goo[B<:Foo[B]](x: B)
defined class Goo
scala> trait Hoo[B<:Foo[B]] { self: B => new Goo(self) }
<console>:9: err