#include <functional>
#include <iostream>
using namespace std;

struct Y;

struct X
{
	std::function<bool(Y&)> b{[] (auto& y_) { return y_.a; }};
	
	bool a{false};
};

struct Y
{
	std::function<bool(X&)> b{[] (auto& x_) { return x_.a; }};
	
	bool a{true};
};

int main()
{
	return 0;
}

