>>972
数値の型は階層化されているので、そこらへんの扱いをどうするかも考えないとな。
例えば数値の 1 は integer? で真になるけど、rational? でも real? でも真だ。
最も特殊な型を返すのが筋だろうから 1 は integer でいいのかな。

それと正確性や変更可能性は階層と独立した属性なので型の一部と見做すべきかどうか。
(例えば正確な有理数と非正確な有理数は違う型だろうか? )