class MyType<T> {}

class MyList<T> {
    MyList<T> copyThis() { return null; }
}

class Foo<T> {
    Foo(MyType<String> a){ }
}

public class Test26  {
    public static void main(String argv[]) {
        MyList<Foo> l1 = new MyList<>();
        m2(l1, m1(
                   new Foo<>(new MyType()){ }
                 ).copyThis());
    }
    public static <T> MyList<T> m2(MyList<T> l1, MyList<T> l2) { return null; }
    public static <U> MyList<U> m1(U item) { return null; }
}