public static <T> Encoder<Collection<T>> collectionEncoder(Encoder<T> enc) {
    return collectionEncoder(enc, true);
  }
@Test
  public void testCollectionEncoder() {
    BASIC_CASES.forEach(
        (coder, data) -> {
          Encoder<? extends Collection<?>> encoder = collectionEncoder(encoderFor(coder), true);
          Collection<?> collection = Collections.unmodifiableCollection(data);

          Dataset<Collection<?>> dataset = createDataset(asList(collection), (Encoder) encoder);
          assertThat(dataset.head(), equalTo(data));
        });
  }