struct S { int x; double y; };
[void] ?{}(* [int, double] this, S s) {
  this->0 = s.x;
  this->1 = s.y;
}
int main() {
  S s = { 123, 345 };
  [int, double] x = s;
  printf("%d %g\n", x);
}
