I have spent an entire day trying to figure out what the minimum number of special forms (built-in constructs) for a LISP dialect is, without resorting to a ton of recursion everywhere.
If you add a bajillion built-in constructs to a language right away, you just end up with an inflexible REPL that keeps growing.
My goal is to learn exactly which forms are necessary.