Not extract global symbols defined in functions to global scope

Other functions can not use global symbols defined in another function
Test SymbolTable errors
Polymorphic abstract syntax tree

Implement this in order to do ast annotation
Merge branch 'master' of github.com:BYVoid/batsh-haskell