Handle error propagation correctly in lazy nodes
Add better documentation and function names for thunk functions