Some of these rules matter more for parallel streams.
This code break the rule about identity and outputs something like -w-o-l-f. Why? Because the identity isn't really an identity.
You should be able to apply an identity as many times as you want without the answer changing. That's why empty
string is a far better identity value!
Now let's break the other rules. What's the output of this
The correct answer is that we don't know. IT depends on the order the stream elements are processed. Not good!