Structs with reference fields
Structs with references require explicitly setting the initial value to a reference value unless the struct already defines its own initial value.
Zero-value references, or nil pointers, will NOT be supported in the future,
for now data structures such as Linked Lists or Binary Trees that rely on reference
fields that can use the value 0, understanding that it is unsafe, and that it can
cause a panic.
A null reference has to be written as unsafe { nil }: outside unsafe, the compiler
rejects direct nil, 0 and voidptr(0) constants where a non-option reference is expected.
The same rule applies to explicitly typed global initializers when globals are enabled.
Raw voidptr targets, C declarations, .c.v files and translated code retain their
C interop rules. Comparisons with null values and optional references remain accepted.