Compare duas matrizes numéricas em CoffeeScript

Fiquei surpreso que o JavaScript converte todos os elementos do array em string antes de compará-los. Isso dá resultados inesperados em alguns casos.

coffee> [1,3] > [1,2]
true
coffee
> [1,10] > [1,2]
false # '10' < '2'

Com a seguinte adição ao protótipo Array:

Array::greaterThan = (otherArray) ->
for element, index in @ when element isnt otherArray[index]
return element > otherArray[index]
false # @ == otherArray

Agora se comporta como eu esperava.

coffee> [1,10].greaterThan [1,2]
true