import "libc.hff"; struct Node { link *Node, value T, fn ok(self Node) void { } } def X = 7 + 2; struct Bit { def Z = 3; fn foo(x T) T { return (~x ^ Z) + X; } !fn foo(x T) T { return ~x + Y; } } def Y = 3.3; enum union Value { None, Int i32, Flo f32, } extern fn main() void { let n Node = {#null, 0}; let n Node = {&n, 1}; let x int #?; x = X + 1 + Y; let v= Value:None; v = :Int 3; switch (v) { case None; case Int i; i; case Flo *f; *f += 1.0f; } printf("n %d\n", n.value); printf("n link %d\n", n.link.value); let x Node = {}; n->ok(); x->ok(); Bit:foo(3); Bit:foo(3); }