#[extern("vm")] fn vm_printf(fmt: *u8, ...) void; type Point = struct { x: i32, y: i32, } type Enum = enum { Int, Add } type Expr = enum { Int: i32, Add: struct { left: *Expr, right: *Expr }, } fn eval(e: *Expr) i32 { match e { .Int(val) => return val, .Add(left, right) => return eval(left) + eval(right), } return 0; } fn main() void { var p: Point = Point { .x = 3, .y = 4 }; vm_printf("%d %d\n", p.x, p.y); vm_printf("basic enum\n", Enum.Int, Enum.Add); ret; }