isNameStartChar :: Char -> Bool
isNameStartChar c =
  let codepoint = ord c
      inRange (a, b) = a <= codepoint && codepoint <= b
  in isLetter c || c == '_' || any inRange nameStartCharRanges
isNameStartChar :: Char -> Bool
isNameStartChar c =
  let codepoint = ord c
      inRange (a, b) = a <= codepoint && codepoint <= b
  in isLetter c || c == '_' || any inRange nameStartCharRanges
isNameStartChar c =
  let codepoint = ord c
      inRange (a, b) = a <= codepoint && codepoint <= b
  in isLetter c || c == '_' || any inRange nameStartCharRanges