そもそも、何故整数型にキャストする必要があるのでしょ?
set A は元々 superbitpacked array[A] of Boolean みたいなものだし。

単に集合→文字列変換の関数の引数に総称的に渡したいとかなら
型無しconstパラメータで充分な気が。