It seems that pure and nothrow are attributes, just like @safe. (By contrast, you can overload functions based on const and immutable). Should the names be changed?