1from libc.stdint cimport int8_t, int16_t, int32_t, int64_t, intptr_t
2from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t, uintptr_t
3cdef extern from *:
4  ctypedef bint bool
5  ctypedef struct va_list
6
7cdef extern from *:
8
9  ctypedef struct A:
10    int32_t namespace_;
11    float float_;
12
13  ctypedef struct B:
14    int32_t namespace_;
15    float float_;
16
17  cdef enum:
18    D,
19  ctypedef uint8_t C_Tag;
20
21  ctypedef struct D_Body:
22    int32_t namespace_;
23    float float_;
24
25  ctypedef struct C:
26    C_Tag tag;
27    D_Body d;
28
29  cdef enum:
30    Double,
31    Float,
32  ctypedef uint8_t E_Tag;
33
34  ctypedef struct E:
35    E_Tag tag;
36    double double_;
37    float float_;
38
39  cdef enum:
40    double_,
41    float_,
42  ctypedef uint8_t F_Tag;
43
44  ctypedef struct F:
45    F_Tag tag;
46    double double_;
47    float float_;
48
49  void root(A a, B b, C c, E e, F f, int32_t namespace_, float float_);
50