Change/higher kinded

This is the new higher-kinded scheme. 
does existsPart look at bounds?

consider `class C { type X } ; P { self => type T = C { type X <: self.U }; type U } # T`