class ListCoder extends IterableLikeCoder<T, List<T>> {

  @Override
  public TypeDescriptor<List<T>> getEncodedTypeDescriptor() {
    return new TypeDescriptor<List<T>>(getClass()) {}.where(
        new TypeParameter<T>() {}, getElemCoder().getEncodedTypeDescriptor());
  }

  protected  ListCoder(Coder<T> elemCoder);

}