     whitespace = ''
     {token, ws, pos}
 
+leftDelims = ['(', '[', '{']
+rightDelims = [')', ']', '}']
+
 astize = (tokens) ->
   tree = []
   current = []
   stack = [[]]
   for token in tokens
-    if token.token in ['(', '[']
+    if token.token in leftDelims
       stack.push [token]
-    else if token.token in [')', ']']
+    else if token.token in rightDelims
       closed = stack.pop()
       closed.push token
       stack[stack.length - 1].push closed

      ['regex', /^\/[^ \/]/.test token]
      ['paren', token in ['(', ')']]
      ['bracket', token in ['[', ']']]

labelMatches = (ast) ->
  macro 'match', ast, (node, args) ->

        exps = inside node
        if isMap node
          compileMap exps
        if isTuple
          compileList exps
        else if isList node
          compileList exps
        else
