       [op, args...] = inside pattern
       args.map labelNames
   else
-    pattern.label = 'name' unless pattern.label
+    pattern.label = 'name' if pattern.label is 'bare'
 
 labelWhere = (wheres) ->
   for [name, def] in wheres

labelOperators = (ast) ->
  walk ast, (node) ->
    [paren, operator] = node
    if paren.token == '(' and not operator.type
      operator.type = 'operator'
    node

apply = (onto, fns...) ->

      ['paren', token in ['(', ')']]
      ['bracket', token in ['[', ']']]
      ['brace', token in ['{', '}']]
      ['bare', true]

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