Agree with @ediosyncratic in principle, but you may have to refactor a lot of stuff, CFEngine uses non-standard comparison in places using true if equal. I have shot myself in the foot many times with this. Should be turned standard though, but perhaps something for a separate PR.