code: def measure_old_norse_syllable(syllable: list) -> Union[Length, None]:
      """
      Old Norse syllables are considered as:
      - short if
      - long if
      - overlong if
  
      >>> measure_old_norse_syllable([m, a.lengthen(), l]).name
      'long'
  
      >>> measure_old_norse_syllable([a, l]).name
      'short'
  
      >>> measure_old_norse_syllable([s, t, ee, r, k, r]).name
      'long'
  
      >>> measure_old_norse_syllable([m, o.lengthen()]).name
      'long'
  
      :param syllable: list of Vowel and Consonant instances
      :return: instance of Length (short, long or overlong)
      """
      index = 0
      while index < len(syllable) and not isinstance(
          syllable[index], Vowel
      ):
          index += 1
      if index == len(syllable):
          return None
      else:
          long_vowel_number = 0
          short_vowel_number = 0
          geminated_consonant_number = 0
          simple_consonant_number = 0
          for c in syllable[index:]:
              if isinstance(c, Vowel):
                  if c.length == Length.long:
                      long_vowel_number += 1
                  elif c.length == Length.short:
                      short_vowel_number += 1
              elif isinstance(c, Consonant):
                  if c.geminate:
                      geminated_consonant_number += 1
                  else:
                      simple_consonant_number += 1
          if (
              long_vowel_number == 0
              and short_vowel_number == 1
              and simple_consonant_number <= 1
              and geminated_consonant_number == 0
          ):
              return Length.short
          elif (
              (
                  short_vowel_number == 1
                  and (
                      simple_consonant_number > 1
                      or geminated_consonant_number > 0
                  )
              )
              or long_vowel_number > 0
              and simple_consonant_number <= 1
              and geminated_consonant_number == 0
          ):
              return Length.long
          elif long_vowel_number > 0 and (
              simple_consonant_number > 1
              or geminated_consonant_number > 0
          ):
              return Length.overlong
  
file_path: cltk/src/cltk/phonology/non/transcription.py
imports: from typing import Union
  from cltk.phonology.non.syllabifier import BACK_TO_FRONT_VOWELS
  from cltk.phonology.non.utils import AbstractConsonant, AbstractPosition, Backness, Consonant, Height, Length, Manner, Place, Rank, Rule, Vowel
label_desc: Use image node_id 1 for calling a global function with example usage: measure_old_norse_syllable(syllable) and returns: None, Length, Length, Length