Docs and compile time checks in macros
"harden" macros