Diagnostics: Ensure correct ordering Create a constexpr function that recursively validates that [a portion of] the diagnostics tree is in proper depth-first order. Use this to ensure at compile time that the diagnostics are, in fact, in the correct order. This will make it harder to accidentally introduce order errors, since any C++17 build will throw a compile error if the list is not correctly ordered.