ugly hacks to hack around and ugly hack (macros)
bit hairy reexport logic, need testing
more AST - optional bindings