type A* = uint64
type B* = uint32
type C* = uint16
type D* = uint8
type E* = uint
type F* = int
type L* = int
type M* = int8
type N* = int
type O* = int8
type J* {.incompleteStruct.} = object
type K* {.incompleteStruct.} = object
type Opaque* {.incompleteStruct.} = object
type G_Tag* = uint8
type Foo_Body* = object
tag*: G_Tag
x0: int16
type Bar_Body* = object
tag*: G_Tag
x: uint8
y: int16
type G* = object
tag*: G_Tag
foo*: Foo_Body
bar*: Bar_Body
type H_Tag* = int
type H_Foo_Body* = object
x0: int16
type H_Bar_Body* = object
x: uint8
y: int16
type H* = object
tag*: H_Tag
foo*: H_Foo_Body
bar*: H_Bar_Body
type I_Tag* = uint8
type I_Foo_Body* = object
x0: int16
type I_Bar_Body* = object
x: uint8
y: int16
type I* = object
tag*: I_Tag
foo*: I_Foo_Body
bar*: I_Bar_Body
proc root*(opaque: ptr Opaque,
a: A,
b: B,
c: C,
d: D,
e: E,
f: F,
g: G,
h: H,
i: I,
j: J,
k: K,
l: L,
m: M,
n: N,
o: O) {.importc: "root".}