Set型はそのインターフェイスの大部分をKeyedCollectionスーパータイプから継承します。Setは、KeyedCollectionがすでに定義したオプション以上に作成時オプションを定義することはありません。カスタムcompare関数やbucket関数が指定されると、これらの関数のキー値引数としてメンバ値が渡されます。これらの関数は、どのメンバにも等しいキー値を決定することで、メンバ値のどの部分がキー値であるかを決定します。
SetはKeyedCollectionのサブタイプで、各メンバに対応するキー値はメンバ値自身によって決まります。キー値はメンバ自身に等しくしても、あるいは作成時オプションを使ってメンバのa関数として定義しても構いません。