import std.stdio, std.traits;

struct A
{
	private immutable int _a;
	private immutable double _b;

	this(int a, double b)
	{
		_a = a;
		_b = b;
	}

	auto alpha() @property
	{
		return _a;
	}

	auto beta() @property
	{
		return _b;
	}
}

struct B
{
	A one;
	A two;

	this(ParameterTypeTuple!A inputOne, ParameterTypeTuple!A inputTwo)
	{
		one = A(inputOne);
		two = A(inputTwo);
	}
}


void main()
{
	auto join = B(1, 3.2, 5, 6.9);
	writeln(join.one.alpha, "\t", join.one.beta);
	writeln(join.two.alpha, "\t", join.two.beta);
}

