declare printf(fmt: *char, ...)
declare malloc(size: u64): *void
let strlen(cstr: *char): u64 =
given {
var len: u64 = 0
for cast(u8, *(cstr+len)) != 0 {
len = len+1
}
} -> len
struct string {
data: *char
len: u64
}
let string_new(cstr: *char): string =
string{data=cstr, len=strlen(cstr)}
let string_get_at(s: string, i: u64): char =
if i > s.len { '\0' }
else { *(s.data+i) }