Derek Parnell wrote: > Whenever the called function decides to do it, if at all. That is: The evaluation of actual parameters can at most be delayed by one level in the call hierarchy. If the evaluation of an actual parameter has to be delayed by one level, then the type of the formal parameter has to be prefixed by the keyword 'lazy'.