We already tried Fay as a team (15kloc codebase to write an IDE), which was literally Haskell without type-classes. We've learned that we want type-classes, YMMV.
Type classes could certainly be argued to be one of those things, but also just existential types makes "reducers" a lot more pleasant to work with.
Check out e.g. Edward Kmett's library or read e.g. Gabriel Gonzales' post on folds if you want to know more.
[1] http://hackage.haskell.org/package/folds-0.7.5/docs/Data-Fol...
[2] http://www.haskellforall.com/2013/08/composable-streaming-fo...
I wonder, does Elm not having type classes is actually a feature that boosted its success, or is it just missing because of the author stubbornness ?
I think Elm did right into focusing in SPA rather than being yet another language compiling to JS.
I dont think so. It did help make errors very straight forward and prolly also keeps compile times low.
The author's stubbornness is, in my view, more in that he does not support (actually prevents where he can) making Elm usable outside of the browser (like what Node did to JS).