import "libc.hff"; struct Node { link *Node, value T, fn ok(self Node) void { } } struct Array { m [N]T, } def X = 7 + 2; struct Bit { def Z = 3; fn foo(x T) T { return (~x ^ X) + Z; } // fn foo(x T) T { return ~x + Y; } } defmacro def2(x, v) [static x = (v)] def2(Y, 3.3); enum union Value { None, Int i32, Flo f32, } enum union Option { None, Some T } extern fn main() void { let n Node = {#null, 0}; let n Node = {&n, 1}; let x Array = {}; let x Array = x; let x int #?; x = X + 1 + Y; let const v= Value:None; v = :Int(1 + x); }