xxxxxxxxxx
import std;
struct A
{
int i;
this(this) { writeln("Expensive copy"); ++copyCount; }
}
int copyCount;
void main()
{
writeln("Tuple");
auto t1 = Tuple!(A)(A(42));
writeln("\ntuple");
auto t2 = tuple(A(42));
copyCount = 0;
writeln("\nUFCS chain");
only(A(0), A(1), A(2))
.filter!(a => a.i == 1)
.takeOne
.front;
writeln(copyCount);
}