class CollectionCoder extends IterableLikeCoder<T, Collection<T>> {

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

  protected  CollectionCoder(Coder<T> elemCoder);

}