I'm playing around with writing an AA implementation that doesn't require typeinfos to work, using aaA.d as reference. One thing I don't quite understand: what's binit used for, and why is it necessary? It seems redundant to me, since D always initializes pointer arrays to nulls (right?).
It's used to avoid extra allocations when only very few buckets are needed.