Thank you. How does Haskell manage to avoid evaluating find_i(...) before invoking p? Since the inner value is the argument to p, it&#x27;s hard to imagine how p can do anything until it has that value.<p>EDIT: I think I see the light. The result of find_i(...) is not what&#x27;s sent to p. Instead, Haskell passes a thunk that might never need to be evaluated.