About the lists Qualifiers : const (can be an method attribute), immutable (can be an method attribute), inout, shared, (scope ?)
Attributes : const (can be a type qualifier), immutable (can be a type qualifier), final (even so I don't understand why private final is so special), pure, @nothrow, @property, @nogc,... Neither qualifier nor attributes : abstract, override,... and many others Why "override" is not a method attribute...because if you remove it you've change the "semantic" of the code..."final" doesn't change anything if you remove it. To me, a function/method attribute enforce a behaviour on the function but you should be able to remove it without changing the "semantic".