   #       #{elseCase}
   #     }"""
 
-paramTupleIn = (call, expression) ->
+paramTupleIn = (ctx, call, expression) ->
   if not expression or not isTuple expression
-    malformed call, 'Missing paramater list'
+    malformed ctx, call, 'Missing paramater list'
     params = []
   else
     params = _validTerms expression
-    map (syntaxNewName 'Parameter name expected'), params
+    map (syntaxNewName ctx, 'Parameter name expected'), params
   params
 
 quantifyUnbound = (ctx, type) ->

  else if isTuple expression
    map syntaxType, (_terms expression)
  else if isCall expression
    syntaxNameAs 'Constructor name required', 'typecons', (_operator expression)
    map syntaxType, (_arguments expression)

syntaxNewName = (message, atom) ->
  curried = (atom) ->
    syntaxNameAs message, 'name', atom
  if atom then curried atom else curried

syntaxNameAs = (message, label, atom) ->
  curried = (atom) ->
    if isName atom
      atom.label = label
      true
    else
      malformed atom, message
  if atom then curried atom else curried

call_ = (op, args) ->

      call.tea = type

    if not rest.length > 0
      return malformed ctx, call, "Macro body missing"

    #macroFn = transform call
    compiledMacro = translateToJs translateIr ctx,
