group :: Ord a => [(a, [b])] -> [(a, [b])]
I want to look up all pairs that have the same fst, and merge them, by appending all the list of bs together where they have the same a and discarding the unnessecary pair and so on...
I got as far as:
group ((s, ls):(s , ls ):ps) =
if s == s
then group ((s, ls++ls ):ps)
else (s, ls) : group ((s , ls ):ps)
group p = p
but obviously this ain t going to cut it, because it doesn t group everything.
Edit: example
[("a", as),("c", cs), ("c", cs3), ("b", bs),("c", cs2), ("b", bs2)]
would output
[("a", as),("c", cs++cs2++cs3),("b", bs++bs2)]