[Haskell-beginners] Recursive calls inside lazy data constructors?