Suppose you have a variable with the following list:
Prelude> arr = [1,2,3,4,5]
And you do,
Prelude> arr
[1,2,3,4,5]
Prelude> arr = tail arr
Prelude> arr
Why does the compiler freeze up now? I am trying to implement this code statement in a recursion, but this phenomenon is preventing my recursion from working properly – it keeps returning an empty list error.