1. remove the StrTreeMap dtor (it shouldn't exist – StrrTreeMap was copy/pasted from TreeMap, and I fixed TreeMap but forgot to fix StrTreeMap as well) 2. move TreeMapImpl to its own header (seadTreeMapImpl.h) 3. rewrite forEach to get rid of the odd-looking loop – LLVM optimised the tail recursive call and I didn't notice when I implemented forEach