lib/Genesis.js
async function symbolPhase1(val) {
						if (typeof val === 'object') {
							if (Array.isArray(val)) {
								val = await Promise.all(val.map(v => symbolPhase1(v)));
							} else {
								for (let key in val) {
									val[key] = await symbolPhase1(val[key]);
								}
							}
							return val;
						}

						if (typeof val !== 'string')
							return val;
						let sym = val.substr(1);
						if (val.charAt(0) === '$') {
							if (sym in Apex) return Apex[sym];
							else {
								log.v(sym, Apex);
								log.e(`Symbol ${val} is not defined`);
								rejectSetup(`Symbol ${val} is not defined`);
								return;
							}
						}
						return val;
					}
async function symbolPhase1(val) {
						if (typeof val === 'object') {
							if (Array.isArray(val)) {
								val = await Promise.all(val.map(v => symbolPhase1(v)));
							} else {
								for (let key in val) {
									val[key] = await symbolPhase1(val[key]);
								}
							}
							return val;
						}

						if (typeof val !== 'string')
							return val;
						let sym = val.substr(1);
						if (val.charAt(0) === '$') {
							if (sym in Apex) return Apex[sym];
							else {
								log.v(sym, Apex);
								log.e(`Symbol ${val} is not defined`);
								rejectSetup(`Symbol ${val} is not defined`);
								return;
							}
						}
						return val;
					}
process $ references