class SetCoder extends IterableLikeCoder<T, Set<T>> {

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

  protected  SetCoder(Coder<T> elemCoder);

}