1 #include <stdarg.h>
2 #include <stdbool.h>
3 #include <stdint.h>
4 #include <stdlib.h>
5 
6 typedef struct A {
7   int32_t namespace_;
8   float float_;
9 } A;
10 
11 typedef struct B {
12   int32_t namespace_;
13   float float_;
14 } B;
15 
16 enum C_Tag {
17   D,
18 };
19 typedef uint8_t C_Tag;
20 
21 typedef struct D_Body {
22   int32_t namespace_;
23   float float_;
24 } D_Body;
25 
26 typedef struct C {
27   C_Tag tag;
28   union {
29     D_Body d;
30   };
31 } C;
32 
33 enum E_Tag {
34   Double,
35   Float,
36 };
37 typedef uint8_t E_Tag;
38 
39 typedef struct Double_Body {
40   double _0;
41 } Double_Body;
42 
43 typedef struct Float_Body {
44   float _0;
45 } Float_Body;
46 
47 typedef struct E {
48   E_Tag tag;
49   union {
50     Double_Body double_;
51     Float_Body float_;
52   };
53 } E;
54 
55 enum F_Tag {
56   double_,
57   float_,
58 };
59 typedef uint8_t F_Tag;
60 
61 typedef struct double_Body {
62   double _0;
63 } double_Body;
64 
65 typedef struct float_Body {
66   float _0;
67 } float_Body;
68 
69 typedef struct F {
70   F_Tag tag;
71   union {
72     double_Body double_;
73     float_Body float_;
74   };
75 } F;
76 
77 void root(A a, B b, C c, E e, F f, int32_t namespace_, float float_);
78