import java.util.*;

class Test {
  interface Condition<K> {}
  class IOC<M> implements Condition {}

  static <T> List<T> filter(T[] c, Condition<? super T> con) {
    return null;
  }

  interface OE {}
  interface LOE extends OE {}

  void foo(OE[] es, IOC<LOE> con) {
    List<LOE> l = filter(es, con);
  }
}