so, I've figured out the execution flow of Rabbit programs:
1. find the main source file in the target module
2. ANTLR parses the source file
3. Run over that and turn it into a tree of nodes
4. Resolve imports and do steps 1-3 for all of them
6. Do any needed processing on classes and such
7. Resolve and check types for all files, from bottom of import tree up
8. Execute the main method