Ближайшее к
case class Foo(lazy next: Foo)
, что я смог придумать, это
class Foo(_next: =>Foo) {
lazy val next = _next
}
object Foo {
def apply(next: =>Foo) = new Foo(next)
def unapply(foo: Foo) = Some(foo.next)
}
Я обнаружил перечисленную проблему добавить ленивые параметры так что я думаю он будет добавлен когда-нибудь. А пока знает ли кто-нибудь более чистый трюк, чем приведенный выше?