added pushIf and a couple of utilities to MacroTypes