declare printf(fmt: *char, ...) declare malloc(size: u64): *void declare free(ptr: *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) }