[Haskell-beginners] Functional programming principles at higher levels?