I forgot to add something 😅
All I said is what I understand, it may not be 100% correct.
And Lazy Eval is like:
1. Reads some parts or the entire expression.
2. Evaluates only the needed sub-expressions.
3. Returns the resulting value.
Eager is like:
1. Reads the entire expression always.
2. Evaluates the entire expression.
3. Returns the result, with some side effects like evaluation errors if one of the sub-expressions yielded an error.