Can you explain this to me?
Is this yet another corner case (or bug?)?
import std.stdio: writefln;
void main() {
    int[int] aa1 = [1:2, 3:4];
    int[int] aa2 = [5:6, 7:8];
    byte[int[int]] s;
    writefln(aa1, " ", aa2); // Prints: [1:2,3:4] [5:6,7:8]
    s[aa1] = 1;
    s[aa2] = 2;
    writefln(s); // Prints: [[1:2,3:4]:2]
}
Bye,
bearophile