 isList = (node) ->
   Array.isArray(node) and (node[0].token is '[')
 
+isTuple = (node) ->
+  Array.isArray(node) and (node[0].token is '{')
+
 isMap = (node) ->
-  (isList node) and (elems = inside node; elems.length > 0) and elems[0].label is 'label'
+  isTuple(node) and (elems = inside node; elems.length > 0) and elems[0].label is 'label'
 
 compileImpl = (node) ->
   switch node.type

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

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

            access call new
            require'.split ' '

controls = '\\(\\)\\[\\]\\{\\}'

tokenize = (input) ->
  whitespace = ''
