[Haskell] lazy patterns versus where-clauses