Alright, it's day 3 of Advent of Code and I'm about to throw Zig out the window. Its basic behavior around pointers is stupendously underspecified and its compiler errors are terrible.
As an example, if you do `var a = &std.ArrayList(u32).init(al)`, what type would you expect a to have? If you said "pointer to ArrayList", wrong! It's a pointer to const ArrayList. Why is it const? I have no idea.
There are a few things in the language that are really nice so far, but a whole lot of things where the language just doesn't tell you you've done something wrong until a totally different part of your code explodes with a cryptic error message.