alias int delegate(out ItemGetter next) ItemGetter; We currently can't do the above^ in D, but what do people think about allowing it? i.e. More specifically, I think an alias expression should be able to refer to the identifier (unless it doesn't make sense, like including a struct inside itself). (It would require a look-ahead.)