Fix issue where f2 would be evaluated twice in some cases

The pass by name function f2 was being evaluated twice in the option monoid in one case, which could be a very expensive operation.