so if macros can operate on typed source and/or on the typed ast tree, do they (the macros) have a type system that guarantees that they will preserve correct typing? or are types still checked agan (globally?) after applying the macro?
what i'm really asking is, is there anything "smart" about how the macro works with the type system?