#include <iostream>
#include <functional>

int f() {
    std::cout << "Here is f" << std::endl;
    return 5;
}

int g(std::function<int()> a) {
    int x = a();
    int y = 2 * a();
    return x + y;
}

int main() {
    int z = g(f);
    std::cout << "main: z = " << z << std::endl;
}
