[Haskell-beginners] Program reliability and multiple data constructors; polymorphism