Intro Materials Should Cover: arena string helpers immutable tree model nil Example Programs: [ ] Metadesk hello world [x] Metadesk parse checker [ ] Example of helpers: string helpers, linked lists, map type printing errors, cmd line, file iter [x] Datadesk-like setup [ ] Example type metadata [ ] Example of simple expression parser [ ] Example of C-like expression parser (with value and type expressions) [ ] Example(s) of using overrides [ ] Example memory clearing in long-running program [ ] Example multi-threaded parsing Example Metadesk Files: [x] Hello world [x] identifiers, numbers, strings, and symbols [x] sets, seperators, and tags Allen's Final Tweak Notes (September 10th 2021): *** MD_EachNodeRef seems bad to me. *** Using it is equivalent to: for (MD_EachNode(it, first_child) { MD_Node *node = MD_ResolveFromReference(it); // this line is saved by the macro } Explaning this concept seems more difficult with the extra macro. I think it'd be clearer and basically just as maintenance efficient to live without this.