@xianc78 basically in sexpr format you may not know anything about the context but you can figure out the structure of (shitpost (catblob)). in rebol/red you have just "shitpost catblob." the only static structure is when something is put in to blocks. and whether blocks are even evaluated or not is up in the air (lisps have a similar problem with macros implicitly quoting some arguments.)
so you have to basically run the lexer->parser automata to get trees which are not directly useful because you have to turn around and run an automata or recursive descent on it again to get the actual call trees, where every step has to consult the current scope for arity, and in traditional rebol these are variable lookups so its possible that arity could actually change between calls to eval and now your program means something else entirely.
there are some foot guns to deal with for sure
metacircular compiler is very good idea. its what the thing i ponder about on occasion is (the terra/lua adjacent monstrocity.)
parsing rebol is kind of weird. i should be able to do it again soon (i did several hand-writes, but i'm about to have an augmented LR rig
when i asked nenad years ago how he planned to get around some of the ambiguity he just handwaved me off about JITs.
i do think the rebol syntax overall is a nice variation of parenthesis-less lisp, though, so its something i keep in mind all the time.