[Haskell-beginners] Haskell data structures: cheap immutable manipulation and nested equality?