docs: function match(args, typeMap) {
    // No arguments, no win.
    if (!args || !args.length) {
      throw new Error('Cannot perform overload.match: args must be non-null array');
    } else if (!typeMap || !typeMap.length) {
      // We always satisfy a null or empty typeMap
      return true;
    }
  
    // Validate the arguments one by one
    for (let index = 0; index < args.length; index++) {
      if (!compatible(args[index], typeMap[index])) {
        return false;
      }
    }
  
    // If not incompatible, sucess
    return true;
  }