Is there a reason why there's no .empty property for hashes? std.array defines it for arrays, and range types must have it defined. But hashes are left out even though they define .length. This could be put in std.array:
@property bool empty(T)(in T a) if (isAssociativeArray!T) { return !a.length; } I can't mark it as neither pure, nothrow, nor safe. I guess that's an implementation detail at this point.