c_string_length = fn (c_string: &u8) u64
{
    >it = c_string;

    while (it.&)
    {
        it = it + 1;
    }

    return #int_from_pointer(it) - #int_from_pointer(c_string);
}

[export] main = fn (argument_count: u32, argument_pointer: &&u8) s32
{
    if (argument_count == 0)
    {
        return 1;
    }
    >arg_ptr = argument_pointer[0];
    >a1 = arg_ptr[0..c_string_length(arg_ptr)];
    >a2 = a1[1..];

    if (a1.pointer != a2.pointer - 1)
    {
        return 1;
    }

    if (a1.length != a2.length + 1)
    {
        return 1;
    }

    return 0;
}