input: from typing import List
  
  def generate_password() -> str:
      """ Generate a random password of 8 characters, ensuring it contains at least one of each character type:
      lowercase letter, uppercase letter, digit, and special character.
      >>> generate_password()
      'Password is: S3c*r3t8'
      >>> generate_password()
      'Password is: A1b@c2d!'
      """
      import string
      import random
  
      length = 8
      special_characters = "!#$%&'()*+,-./:;<=>?@[\]^_`{|}~"
  
      password = random.choice(string.ascii_lowercase)
      password += random.choice(string.ascii_uppercase)
      password += random.choice(string.digits)
      password += random.choice(special_characters)
  
      for i in range(length):
          password += random.choice(string.ascii_lowercase + string.ascii_uppercase + string.digits + special_characters)
  
      password = ''.join(random.sample(password, len(password)))
  
      return "Password is: " + password
output:     import string
      import random
  
      length = 8
      special_characters = "!#$%&'()*+,-./:;<=>?@[\]^_`{|}~"
  
      password = random.choice(string.ascii_lowercase)
      password += random.choice(string.ascii_uppercase)
      password += random.choice(string.digits)
      password += random.choice(special_characters)
  
      all_chars = string.ascii_lowercase + string.ascii_uppercase + string.digits + special_characters
      password += ''.join(random.choice(all_chars) for _ in range(length - 4))
  
      password = ''.join(random.sample(password, len(password)))
  
      return "Password is: " + password