Could you explain what's going on here?

I'm not sure why the parser needs to know about the definitions.