This question was asked at the recent HaskellX conference, with both practicioners as well as teachers being present. I won't reiterate everything that was said, and instead link to a recording of the podium discussion (https://skillsmatter.com/skillscasts/10952-park-bench-panel-session-with-haskellx-experts).
One particular argument, that I've heard come up multiple times now, is that teachers are complaining about the length
function being polymorphic. Apparently length :: forall a. Foldable f => f a -> Int
is hard to grasp/understand/accept for a new-comer. The solutions proposed to solve this problem are to:
- Return length to its non-Foldable type
- Use a custom Prelude to teach beginners
Drawbacks for 1 include that practicioners like the fact that length works for all kinds of data structures, and don't want that taken away from them. The primary problem with solution 2 is that students can't go and use their aquired knowledge to work on Open