 
 requireName = (ctx, message) ->
   if ctx.isAtDefinition()
-    syntaxNewName message, ctx.definitionPattern()
-  else
-    malformed call, message
+    syntaxNewName ctx, message, ctx.definitionPattern()
+  else
+    malformed ctx, call, message
     false
 
 fakeCompile = (ctx, token) ->

  # The problem is I don't know which are impricise, because the names are done inside the
  # pattern. I can use the context to know which types where added in the current assignment.

  # TODO: malformed "LHS\'s type doesn\'t match the RHS in assignment", pattern

  precs: precs ? []
  assigns: assigns ? []

    if ctx.assignTo()
      if isCapital operator
        if args.length < paramNames.length and nonLabeledArgs.length > 0
          malformed ctx, call, "curried constructor pattern"
        else
          compiled = callConstructorPattern ctx, sortedCall, extraParamNames
          retrieve call, sortedCall
          compiled
      else
        malformed ctx, call, "function patterns not supported"
    else
      if nonLabeledArgs.length < positionalParams.length
        # log "currying known call"
