1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
type C* = uint32
type A* = object
m0: int32
type B* = object
x: int32
y: float32
type F_Tag* = uint8
type Foo_Body* = object
tag*: F_Tag
x0: int16
type Bar_Body* = object
tag*: F_Tag
x: uint8
y: int16
type F* = object
tag*: F_Tag
foo*: Foo_Body
bar*: Bar_Body
type H_Tag* = uint8
type Hello_Body* = object
x0: int16
type There_Body* = object
x: uint8
y: int16
type H* = object
tag*: H_Tag
hello*: Hello_Body
there*: There_Body
proc root*(x: A, y: B, z: C, f: F, h: H) {.importc: "root".}