The code here is split into several usages. Each usage represents a different pass or modification when given an AST.
Each different type of pass is located in its own directory within the src directory.