Int
が現実的に 32bit や 64bit なのには不満はないです。無限精度にはなってほしくない。ValueEnumerable
の例で言えば func combination<T: ValueEnumerable, U: ValueEnumerable>(_ a: T.Type, _ b: U.Type) -> [(T, U)]
みたいな関数があったときにUInt8
や Int32
や Int64
は ValueEnumerable
だけど Int
は違ったらcombination(Int, Bool)
みたいなのを防げます。combination(UInt8, Bool)
はやりたいですし、 combination(Int32, Bool)
も同様に認められるべきだと思います。