haskell: strict evaluation and seq