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 #ifdef __cplusplus
18   : uint8_t
19 #endif // __cplusplus
20  {
21   D,
22 };
23 #ifndef __cplusplus
24 typedef uint8_t C_Tag;
25 #endif // __cplusplus
26 
27 typedef struct D_Body {
28   int32_t namespace_;
29   float float_;
30 } D_Body;
31 
32 typedef struct C {
33   C_Tag tag;
34   union {
35     D_Body d;
36   };
37 } C;
38 
39 enum E_Tag
40 #ifdef __cplusplus
41   : uint8_t
42 #endif // __cplusplus
43  {
44   Double,
45   Float,
46 };
47 #ifndef __cplusplus
48 typedef uint8_t E_Tag;
49 #endif // __cplusplus
50 
51 typedef struct Double_Body {
52   double _0;
53 } Double_Body;
54 
55 typedef struct Float_Body {
56   float _0;
57 } Float_Body;
58 
59 typedef struct E {
60   E_Tag tag;
61   union {
62     Double_Body double_;
63     Float_Body float_;
64   };
65 } E;
66 
67 enum F_Tag
68 #ifdef __cplusplus
69   : uint8_t
70 #endif // __cplusplus
71  {
72   double_,
73   float_,
74 };
75 #ifndef __cplusplus
76 typedef uint8_t F_Tag;
77 #endif // __cplusplus
78 
79 typedef struct double_Body {
80   double _0;
81 } double_Body;
82 
83 typedef struct float_Body {
84   float _0;
85 } float_Body;
86 
87 typedef struct F {
88   F_Tag tag;
89   union {
90     double_Body double_;
91     float_Body float_;
92   };
93 } F;
94 
95 #ifdef __cplusplus
96 extern "C" {
97 #endif // __cplusplus
98 
99 void root(A a, B b, C c, E e, F f, int32_t namespace_, float float_);
100 
101 #ifdef __cplusplus
102 } // extern "C"
103 #endif // __cplusplus
104