public static <P> Matcher<P> and(Iterable<? extends Matcher<P>> matchers) {
    return and(toArray(matchers));
  }
@Test void and_single() {
    Matcher<Boolean> one = Boolean::booleanValue;
    assertThat(and(one)).isSameAs(one);
  }