// Test case for issue #578: https://github.com/typetools/checker-framework/issues/578
class Issue578 {
    <A, B> void eval(Helper<B> helper, Interface<A> anInterface) {
        Object o = new SomeGenericClass<>(helper.helperMethod(anInterface));
    }
}

abstract class Helper<C> {
    abstract <D> Interface<C> helperMethod(Interface<D> anInterface);
}

interface Interface<E> {}

final class SomeGenericClass<F> {
    SomeGenericClass(Interface<F> s) {}
}
