Name is meant to hint to generic code that an input is meant to be interpreted as a dimension name, if the dimension name isn't a subtype of AbstractName, such as Name("i"). However, the dimension name itself is the object getting wrapped, so a better name would be WrappedName.