As a Haskell beginner I actually found in confusing that once I'd learnt the prelude functions I had to learn more functions again to get to the generalised functions. I would have rather been taught the general functions in the specific frame of lists, and then show why the type signature is more general than one for lists.