basically, decouple data and passes I want to able...
# random
n
basically, decouple data and passes I want to able to add new data types (typically for me, AST nodes), and new passes independently