Pointers
Pointers refer to an element that may have been defined elsewhere. For example, (i32 *) is a pointer to an i32.
You may use the unary & to get a pointer to a ref value.
Unary * is used to dereference a pointer, ie. to fetch the value it points to. The result will be a ref value.
fnc main () () {
    sym (x 0);
    sym (p (& x)); # p points to x
    = (* p) 1; # x is now 1
};
If you want to pass a value to a function and have it modified, you must pass a pointer to it instead.
fnc setToNextVal (x:(i32 *)) () {
    = (* x) (complexCalculation);
};
fnc main () () {
    sym (x 0);
    setToNextVal (& x);
};
 
    