pub fn main(world: World) -> Void raises {
    var backing: [8]u8 = [0, 0, 0, 0, 0, 0, 0, 0]
    var alloc: FixedBufAlloc = std.mem.fixedBufAlloc(backing)
    let first: Maybe<MutSpan<u8>> = std.mem.allocBytes(alloc, 3)
    let second: Maybe<MutSpan<u8>> = std.mem.allocBytes(alloc, 5)
    let overflow: Maybe<MutSpan<u8>> = std.mem.allocBytes(alloc, 1)
    let nullAlloc: NullAlloc = std.mem.nullAlloc()
    let nullBytes: Maybe<MutSpan<u8>> = std.mem.allocBytes(nullAlloc, 1)
    if first.has && second.has && !overflow.has && !nullBytes.has && std.mem.len(first.value) == 3 && std.mem.len(second.value) == 5 {
        first.value[0] = 65
        second.value[4] = 90
        if backing[0] == 65 && backing[7] == 90 {
            check world.out.write("allocator primitives ok\n")
        } else {
            check world.out.write("allocator primitives wrote wrong bytes\n")
        }
    } else {
        check world.out.write("allocator primitives failed\n")
    }
}
