Symbol#== allocates at least one string, possibly two
Symbol#== is implemented by Comparable, which uses Symbol#<=>, which coerces the symbol to a String so it can use String#<=> logic.
Most people don't know this, but it adds many hidden allocations to any Symbol-heavy code that that's doing lots of == comparisons.
I propose that Symbol should define its own == that doesn't have to do the extra work for <=>. The other Comparable methods are not important because Symbols usually compared using == or ===.