input: from typing import List
  
  def match_song_criteria(songs: List[Song]) -> bool:
      """ Check if all given Song instances in the list match the criteria defined 
      by the Song class: Have a valid __str__, __eq__, and length method.
      >>> s1 = Song('Bohemian Rhapsody', 'Queen')
      >>> s2 = Song('Hotel California', 'Eagles')
      >>> match_song_criteria([s1, s2])
      True
      >>> s3 = Song('Bohemian Rhapsody', 'Queen')
      >>> match_song_criteria([s1, s3])
      True
      """
output:     for song in songs:
          if not hasattr(song, '__str__') or not callable(song.__str__):
              return False
          if not hasattr(song, '__eq__') or not callable(song.__eq__):
              return False
          if not hasattr(song, 'length') or not callable(song.length):
              return False
      return True