     tokenize ']'
   ]
 
-fn_ = (params, body) ->
-  (call_ (token_ 'fn'), [(tuple_ params), body])
-
-typedFn_ = (params, type, body) ->
-  (call_ (token_ 'fn'), join [(tuple_ params), type], body)
+fn_ = (params, rest) ->
+  (call_ (token_ 'fn'), join [(tuple_ params)], rest)
 
 token_ = (string) ->
   (tokenize string)[0]

  else
    if nonLabeledArgs.length < positionalParams.length
      # log "currying known call"
      lambda = (fn_ extraParams, sortedCall)
      trackTransformation lambda, sortedCall
      compiled = callMacroCompile ctx, lambda
      retrieve call, lambda

      if (not ctx.isPreTyped macroName)
        malformed ctx, call, "Type annotation required"
      macroBody = join [type], macroBody
      typeList = []
    else
      typeList = [type]

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