How to shoot your leg with lazy in Haskell
This code compile and works fine:
Until we try to run this code with some not expected x (with minus) it will crash by memory limit, and not immediately.
> take' (-5) [1 .. ]
And get the infinity list on your screen.
However we can obtain this situation by add one guard expression: