My Haskell word count program
Your usage of Data.Map is sound. I see nothing that could be improved as long as you stay with Data.Map.

If you give all of the functions explicit type declarations, so that the Monomorphism Restriction doesn't apply, you can use generic integral types:

mapTotal :: Integral i =&gt; Map a i -&gt; i


Some quick style-related things you could change:

First:

(\x -&gt; case x of
  Nothing -&gt; Just 1
  Just n -&gt; Just (n+1))


... is the same as

Just . maybe 1 (+1)


Second:

You don't need parens around many of your function calls; if you have something like a +.- (foo bar baz) ¤:* b, it means the same thing as a +.- foo bar baz ¤:* b because every operator has lower precedence than function application.

Third:

You use very long indentations. A tip is to insert newlines after = and before control structures like case to make the code more compact. I find this style to be quite good.