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...