Improved code modularity.
Improved imports.
Removed useless grammar rule.
Improved parser monad and grammar.
Moved dependency calculation to the parser and refactored and updated exceptions.