import fn puts(str: [u8]) -> i32; fn main() -> i32 { return puts("Hello World!"); } !use defaults->+ (add <- int <- int) -> int add x -> y -> x + y -------------------------- !use builtin -> universal -> Natural. !use builtin -> universal -> Integer. !use builtin -> universal -> Real. !use builtin -> universal ->. !use builtin -> x86 -> i32. !use builtin -> x86_64 -> i128. !use builtin -> x86 -> u32. !use defaults -> +. !use defaults -> println. !use defaults -> map. !entrypoint <- main. (Vec3 <- a <- a <- Natural) -> (a, a, Natural). Vec3 a b c -> (a, b, c). (I <- ) ->. I a -> a. (K <- <-) ->. K x -> y -> x. (`add` <- Natural <- Natural) -> Natural. `add` x -> y -> x + y. (`+` <- Float <- Float) -> Float. (doStuff <- Integer) -> Integer. doStuff x -> 1.0 + x // Warning (main <- [String]) -> ? IO. main args -> match (x <- len args) ( (x = 0) -> println "No Args", (x < 3) -> println (get 0 args), -> map println args ). (println <- String) -> ? IO. println str -> (print str, print "\n"). !use defaults -> x86 -> linux -> _stdout. !use defaults -> write. (print <- String) -> ? IO. print str -> write str _stdout. (World) -> (IO, MemAction). (IO) -> (FileRead, FileWrite, FileOpen, FileClose, FileStat). (MemAction) -> (MemRead, MemWrite, MemMap, Alloc, Free). (write <- String <- File a) -> (x86_64 -> i64) ? (FileAction a). write str file -> !syscall_write (len str) str _stdout. write str file -> !asm "syscall" ( !reg "rax" 1, !reg "rsi" str, !reg "rdx" file, !reg "rdi" (len str)) ("rax"). !use defaults -> dlopen. (somefunc <- Integer) -> Integer. somefunc -> !deref (dlopen "SomeFunc") 0. !use builtin -> x86_64 -> ptr. !use builtin -> x86_64 -> Pointer. !setrule embedded. // Disables defaults, enables mutability underneath pointers (Byte) -> Type. (Color) -> Type. Byte -> (x86_64 -> u8). Color -> Byte. (cols) -> Integer. cols -> 80. // (Byte, Byte) is packed (framebuffer) -> (Pointer (Byte, Color)). framebuffer -> ptr 0x8B000. (buffset <- Natural <- Natural <- Byte <- Color) -> ? MemWrite. buffset x y char col -> memwrite framebuffer (y * cols + x) (char, col).