def alias_predicate(new_name, existing_name)
      raise ArgumentError, 'the existing name should be the base name, not an _any/_all variation' if existing_name.to_s =~ /(_any|_all)$/
      ['', '_any', '_all'].each do |suffix|
        Nodes::PredicateMethods.class_eval "alias :#{new_name}#{suffix} :#{existing_name}#{suffix} unless defined?(#{new_name}#{suffix})"
      end
    end
def alias_predicate(new_name, existing_name)
      raise ArgumentError, 'the existing name should be the base name, not an _any/_all variation' if existing_name.to_s =~ /(_any|_all)$/
      ['', '_any', '_all'].each do |suffix|
        Nodes::PredicateMethods.class_eval "alias :#{new_name}#{suffix} :#{existing_name}#{suffix} unless defined?(#{new_name}#{suffix})"
      end
    end
Create an alias to an existing predication method. The _any/_all variations will
 be created automatically.
 @param [Symbol] new_name The alias name
 @param [Symbol] existing_name The existing predicate name
 @raise [ArgumentError] The existing name is an _any/_all variation, and not the original predicate name