freeze the map
make rule_parser a bit cleaner with ZScan#try