input: from typing import List
  
  def generate_password() -> str:
      """
      Generates a random password that is 8 characters long, consisting of numbers, letters, and special characters.
  
      Examples:
      >>> generate_password()
      'aB1#-2cD'  # This output is random and may vary
      >>> generate_password()
      '3Fg&7Hz*'  # This output is random and may vary
      """
output:     import random
      import string
  
      characters = string.ascii_letters + string.digits + string.punctuation
      password = ''.join(random.choice(characters) for _ in range(8))
      return password