I noticed for some CPGrammar, when archived and then unarchived, will be broken and cannot be used, and this only happened on iOS platform. An example test case: https://github.com/siuying/CoreParse/commit/1344c733876a7ec6795d0bea2569ec9888dde730 Somehow the order of the rules changed after archive/unarchive, and the resulting grammar is not correct.