1*f0340d8eSSorin Bascaclass Main {
2*f0340d8eSSorin Basca
3*f0340d8eSSorin Basca	class Foo { }
4*f0340d8eSSorin Basca
5*f0340d8eSSorin Basca	interface GenericBase <F> { }
6*f0340d8eSSorin Basca
7*f0340d8eSSorin Basca	class GenericDerived <F extends Foo> implements GenericBase<F> { }
8*f0340d8eSSorin Basca
9*f0340d8eSSorin Basca	private <B extends Foo> void foo(GenericBase<B> g) { }
10*f0340d8eSSorin Basca
11*f0340d8eSSorin Basca	private <D extends Foo> void foo(GenericDerived<D> g) { }
12*f0340d8eSSorin Basca
13*f0340d8eSSorin Basca	void bar() {
14*f0340d8eSSorin Basca		GenericDerived<Foo> gd = new GenericDerived<>();
15*f0340d8eSSorin Basca		foo(gd);
16*f0340d8eSSorin Basca	}
17*f0340d8eSSorin Basca}