import java.util.*; class Test { interface Q { } void f(List list, Set> q) { assertThat1(list, q); assertThat2(list, q); assertThat(list, q); } private static void assertThat1(T actual, Set matcher) {} private static void assertThat2(T actual, Set matcher) {} private static void assertThat(T actual, Set matcher) {} private static void assertThat(T actual, List matcher) {} }