It really has nothing to do with the if/else expression. The peer
types are being resolved correctly. The same error can be produced
with something as simple as:
var foo = 5;
I started off with "hints" that required the poor student to piece
together the information from incomplete bits. A complete example is
like a picture that is worth 1000 words and far clearer.
I'm changing the order of some more topics. Trying to explain the value
of pointers when we're mostly dealing with stack-sized values like
integers feels convoluted. So I'm starting with enums (which also has a
nice segue from an earlier "switch" exercise). Then structs. Then unions
(just in keeping with the order of these items on ziglearn.org) and THEN
pointers and multi-pointers and slices.