[Haskell-beginners] How to design functions so they can be part of other larger systems?