文字列のcase展開 (2)

で、何故このように実装を変更したのか?
今回、Unicodeのcase foldを全部サポートしたので、case変換に今まで以上のコストが掛かるようになった。それで、matching時点でのcase変換はできるだけやらずに済ませたいというのが理由だ。
どうやって問題を解決しようか?
さっき考えたのは、文字列の文字数が短いとき(例えば4文字以下)にはコンパイル時点で展開して、それより長いときには展開しないでmatching時点でcase変換による文字列比較にする。