class Foo(x: Foo) case object Bar extends Foo(null) case object Voop extends Foo(Voop)