This is a partial revert of cc696627 The full definition of Decl and Stmt are required by PointerUnion, which validates the number of free bits in Decl* etc based on type alignment.