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.


