Symbols

   In order to be able to make the transition from tokens to AST, the 
   parser needs to be able to recognize functions, variables, types, etc. 
   The symb module keeps track of all these symbols and their namespaces 
   and scopes. The parser can do lookups in the current scope, or in just 
   specific namespaces. Many AST nodes have a corresponding symbol (e.g. 
   variables and functions). 

