     |> File.read!()
     |> String.split(["\r\n", "\n"], trim: true)
     |> Enum.reduce({start, continue, []}, fn line, acc ->
-      [codepoints | category] = :binary.split(line, ";")
+      [range | category] = :binary.split(line, ";")
 
       pos =
         case category do

  ##
  ## First let's load all characters that we will allow in identifiers
  ##

  {letter_uptitlecase, start, continue, _} =
    Path.join(__DIR__, "UnicodeData.txt")

    |> File.read!()
    |> String.split(["\r\n", "\n"], trim: true)
    |> Enum.flat_map(fn line ->
      with [range, scripts_with_comments] <- :binary.split(line, ";"),
           [scripts, _comments] <- :binary.split(scripts_with_comments, "#"),
           scripts =
             scripts |> String.split(" ", trim: true) |> Enum.map(&Map.get(aliases, &1, &1)),
           true <- "Common" not in scripts and "Inherited" not in scripts do
        for codepoint <- range_to_codepoints.(range),
            Map.has_key?(unicode_all, codepoint),
            do: {codepoint, scripts}
      else
