This repeats the same general logic, which means that a bugfix would have to apply to each one. This could be expressed like this:

```ruby

comparators = ['<', '<=', '=', '=>', '>']

if comparators.include? comparator and (is_numeric?(result) and is_numeric? arg)
  return_value = result.send(comparator, arg)
elsif comparator == '=~'
  # ...
end