Improve Compare::semantic