    slow <- function(n=3) {
        for (i in seq_len(n * 1000000)) {}
        TRUE
    }

    fast <- fast1 <- fast2 <- function(n=1) {
        for (i in seq_len(n * 1000000)) {}
        TRUE
    }

    f4 <- function() {
        ## heavy calculation ahead, so see if necessary
        if (!slow())  # check, usually fails
            return()
        if (fast())   # check, usually succeeds
            return()
        slow(); slow(); slow();
    }
