There was some real controversy over this change. People were strongly opposed to the change for exactly the reason you gave (among others), that it is hard for beginners. However, there was enough momentum that it went through, and now things like fmap and length work on a wide variety of data types. You can google ftp haskell controversy for more info.