   #       [head, "#{exp}.head"]
   #       [tail, "#{exp}.tail"]
   #     ]
+
+  # Maps
   (pattern) ->
     # expect lists from here on
     if not Array.isArray pattern
       throw new Error "pattern match expected pattern but saw token #{pattern.token}"
     [constr, elems...] = inside pattern
-    label = "'#{constr.token}'" if constr
+    label = "'#{constructorToJsField constr}'" if constr
     trigger: isMap pattern
     cache: true
     cacheMore: (exp) -> if elems.length > 1 then ["#{exp}[#{label}]"] else []

          [elem, "$sequenceSplat(#{i}, #{elems.length - i - 1}, #{exp})"]
        else
          [elem, "$sequenceAt(#{i}, #{exp})"])
  (pattern) ->
    elems = inside pattern
    trigger: isTuple pattern

  recurse: '#67B3DD'
  param: '#FDA947'
  comment: 'grey'
  operator: '#67B3DD'
  normal: 'white'

colorize = (color, string) ->
