                 while (_.last ops) isnt '('
                     output.push ops.pop()
                 ops.pop()
-            when token in SYMBOLS
-                while ops.length and (_.last ops) in SYMBOLS and (hasPrecedence (_.last ops), token) > -1
+            when token in SIGILS
+                while ops.length and (_.last ops) in SIGILS and (hasPrecedence (_.last ops), token) > -1
                     output.push ops.pop()
                 ops.push token
             else


text = (s) ->
    "\\text{#{s}}"


toLaTeX = modifies isExpression, destructured (expr, op, l, r, fractions=yes) ->
    isFraction = fractions and op is '/'

    [l[i], l[j]] = [l[j], l[i]]
    l

unwrap = (obj) ->
    if obj.length?
        obj[0]
    else
        obj

rank = (expr) ->
    [Function, Array, String, Number].indexOf expr.constructor
