I have a list with the type `[(Int, Char, Int)]'. E.g:

```
[(1, 'x', 1), (1, 'y', 2), (2, 'x', 1)]

```

The first `Int` is the number of times the `Char` appears and the second `Int` is to differentiate the same char from each other. For example, there could be x1 and x2.

I want to join elements of that list that have the same 2nd and 3rd element. In the case of the list above, it would become `[(3, 'x', 1), (1, 'y', 2)]` (the first and third tuples from the initial list were added together).

I've looked into `zipWith` and list comprehensions, but none of them seem to work. Is there any other way that I'm not thinking about that might work here?