code: function handleArgs(self, count, args, name, help) {
    let negated = false;
    if (is.String(self)) {
      negated = true;
      name = nameNegative(name);
    }
  
    const argc = args.length;
    if (argc === count) return [name, negated];
  
    let max = '';
    if (is.Array(count) && count.indexOf(argc) !== -1) {
      const n = count[count.length - 1];
      if (argc !== n || is.String(args[0])) return [name, negated];
      max = `,\nand when called with ${n} args, the first arg must be a docstring`;
    }
  
    let wantedArgCount;
    if (is.Number(count)) {
      wantedArgCount = `${count} argument`;
    } else {
      wantedArgCount = count.slice(0, -1).join(', ');
      count = count.pop();
      wantedArgCount = `${wantedArgCount} or ${count} argument`;
    }
    if (count !== 1) wantedArgCount += 's';
  
    const actualArgs = stringify([].slice.call(args)).slice(1, -1);
  
    const functionSource = Function.prototype.toString.call(assert[name]);
    let wantedArgNames = functionSource.match(/^function\s*[^(]*\s*\(([^)]*)/)[1];
    if (max) {
      wantedArgNames = `explanation, ${wantedArgNames}`;
    }
  
    const wanted = `${name}(${wantedArgNames})`;
    const actual = `${name}(${actualArgs})`;
    const message = `${green(wanted)} needs ${wantedArgCount + max}
  your usage: ${red(actual)}`;
  
    if (typeof help === 'function') {
      help = help();
    }
    throw error(message, help);
  }
docs: assert that the function got `count` args (if an integer), one of the number of args (if an array of legal counts), and if it was an array and the count was equal to the last option (fully populated), that the first arg is a String (that test's semantic explanation)