I don&#x27;t understand how this program can ever terminate, since there is no base case. Every invocation of find_i starts by calling forsome, and every invocation of forsome calls find_i. How can it possibly end?<p>Perhaps this relies subtly on Haskell&#x27;s laziness? If so, I don&#x27;t think there is a &quot;quick translation&quot; to ML or OCaml.