In my opinion the mathematical concepts and abstractions are not the issue with Haskell. The issue is that it's a pain to use in practice because of:
1. Really annoying to do any kind of i/o
2. Extremely poor interoperability with non-Haskell code
3. (opinion) Unpleasant, inconsistent, hairy syntax