If you only write safe code in a safe language, then it should be perfectly ok to trap and deal with a failed lookup, irrespective of what kind of data-structure it is.
So, if this isn't possible in D, then D isn't able to compete with other safe programming languages...
But then maybe one shouldn't try to sell it as a safe programming language either.
You can't really have it both ways.
