trait Foo { fun get(x : Any) : Foo } fun foo(x: Foo) { (x[x])[x] }