I'm running into a problem when writing some simple erlang code for an old Advent of Code task.

The following program is supposed to read lines, group characters in a string by occurrence and then count the number of lines that have a repeat of three characters.

```

count_occurrences([], Map) -> Map;
count_occurrences([H | T], Map) ->
    count_occurrences(T, maps:put(H, maps:get(H, Map, 0) + 1, Map)).

count(Line, Count) ->
    Map = count_occurrences(Line, #{}),
    case lists:member(3, maps:values(Map)) of
        true -> Count + 1;
        false -> Count
    end.

run() ->
    {ok, Binary} = file:read_file("data.txt"),
    Lines = binary:split(Binary, <<"\n">>, [global]),
    Result = lists:foldl(fun count/2, 0, Lines),
    Result.

```

However, I get this error message:

```
10> c(day2).   
{ok,day2}
11> day2:run().
** exception error: no function clause matching day2:count_occurrences(<<"bpacnmelhhzpygfsjoxtvkwuor">>,#{}) (day2.erl, line 5)
     in function  day2:count/2 (day2.erl, line 10)
     in call from lists:foldl/3 (lists.erl, line 1263)

```

I don't understand why `<<"bpacnmelhhzpygfsjoxtvkwuor">>,#{}` doesn't match the second "count\_occurrences" function clause - a string is the same as a list, right? Why doesn't it match [H | T]?