looks like there should be tons of annotations/attributes on it.
Because you have a template function, most attributes will be inferred based on the Range type. `const` is not inferred, but `popFront` mutates so it doesn't apply in your case. `@property` is not inferred either, but the spec says "Using property functions is not recommended until the definition is more certain and implementation more mature."