   # TODO: should we support bare records?
   #   [a: 2 b: 3]
   if not ctx.shouldDefer()
-    form.tea = tupleOfTypes (tea for {tea} in elems)
+    form.tea = tupleOfTypes map _tea, elems
 
   if ctx.assignTo()
     combinePatterns compiledElems

  (irDefinition expression.tea, compiled)

topLevel = (ctx, form) ->
  definitionList ctx, pairs _terms form

definitionList = (ctx, pairs) ->
  compiledPairs = (for [lhs, rhs] in pairs

    formatString = formatString[matched.length...]
  if args.length > types.length
    malformed call, "Too many arguments to format"
  # TODO: curry
  formattedArgs = for {type, symbol, prefix}, i in types when args[i]
    compiled = compiledArgs[i]
