There are two types of declarators in C, regular declarators and abstract
declarators. The former is for declaring variables, function parameters,
typedefs, etc. and the latter for abstract types---typedef int
({*}foo)(void) vs. tt int ({*})(void). The difference between the two is
just whether or not an identifier is attached to the declarator. We therefore
only define one Decl type and use it for both cases.