feat: meta-programming changes ahead of #8309 (#10935)

This PR introduces the meta-programming changes necessary to make
everything compatible with the redefinition of `Decidable` in #8309.
11 files changed