I can't see the logic in AA foreach order. Consider this code:
```
void main() {
string[string] test = [
"one": "1",
"two": "2",
"three": "3",
"four": "4"
];
import std.stdio:writeln;
foreach(k, v; test) {
writeln(k);
}
}
Output:
three
two
one
four
I was sure output should be
one
two
three
four