Change free operator generator into a macro and add -, * and / versions.