[Haskell-beginners] Modeling recursive data structs