Improve error messages from totally-incompatible version intermixing (wrong args to internal macros)
Does anything stop one from defining a driver macro with one version of derive_adhoc, and then applying it to a template macro made with another version of derive_adhoc?
If the answer is "no" we should probably implement some kind of a check.