code: def dispatch(table, args):
      
      # No arguments: print help.
      if len(args) == 1:
          print_help(args[0], table)
          sys.exit(0)
  
      # Bad command or incorrect number of arguments: print help to stderr.
      if args[1] not in table or len(args) != len(table[args[1]]) + 1:
          print_help(args[0], table, dest=sys.stderr)
          sys.exit(1)
  
      # Cast all the arguments to fit their function's signature to ensure
      # they're correct and to make them safe for consumption.
      sig = table[args[1]]
      try:
          fixed_args = [type_(arg) for arg, type_ in zip(args[2:], sig[1:])]
      except TypeError:
          # If any are wrong, complain to stderr.
          print_help(args[0], table, dest=sys.stderr)
          sys.exit(1)
  
      # Dispatch the call to the correct function.
      sig[0](*fixed_args)
docs: Dispatches to a function based on the contents of `args`.