Don't make the inner class parameterized:
class Baz> {
class Foo {
}
}
As an inner (non-static nested) class, I as defined in the Baz declaration will still have meaning in Foo, since every Foo will have an implicit reference to its outer Baz instance.