   if _notEmpty invalidArgLabels
     return jsNoop()
 
-  if nonLabeledArgs.length > positionalParams.length
-    malformed ctx, call, "Too many arguments to #{operator.symbol}"
   extraParamNames = positionalParams[nonLabeledArgs.length..]
   extraParams = map token_, ("_#{n}" for n in extraParamNames)
   argsInOrder = sortCallArguments paramNames, labeledArgs, nonLabeledArgs, extraParams

  # console.log (printType canonicalType)
  # console.log (JSON.stringify inferredType)
  # console.log (JSON.stringify type.type)
  #ctx.extendSubstitution
  # Shouldn't fail
  matchType inferredType.type, type.type#(substitute ctx.substitution, type).type
  # console.log "after", (printType inferredType.type)

      (jsCall "js#{jsMethod[0].toUpperCase()}#{jsMethod[1...]}", compatibles)

ms.log = ms_log = (ctx, call) ->
  [..., value] = args = _arguments call
  compiled = termsCompile ctx, args
  call.tea = value.tea
  view = map (__ (__ toMultilineJsString, collapse), toHtml), args
  assignCompile ctx, call, (jsCall "debugLog", join view, compiled)

ms['=='] = ms_eq = (ctx, call) ->
    [a, b] = _arguments call
