left-leaning 2-3 red-black trees as C preprocessor macros