fn intern_symbol(&mut self, name: &str) -> SharedSymbol {
        if let Some(symbol) = self.symbols.get(name) {
            *symbol
        } else {
            let symbol = SharedSymbol(self.symbols.len());
            self.symbols.insert(name.to_string(), symbol);
            symbol
        }
    }
Interns a symbol in the parser,
so that future symbols with the same name can be
replaced consistently.
passerine/src/compiler/parse.rs