A generic dictionary, using a tree internal representation, written in C#