S-expressions the wrong way
S-expressions are attracted towards Lisp S-expressions give us that natural syntax for expressing nested hierarchical trees, and once our program is written as trees, it becomes tempting to let those trees rewrite themselves, a path that leads naturally to macros making syntax expand into more syntax. Such is the Lisp deal. What if we went the other way around? Forget macros, lets keep the S-expressions as the way to go when dealing with representing things in a clean declarative way, but then instead of making S-expressions be able to generate new forms, how can I constrain them into very specific ones? This is what led me to SJON, I don't know why I called it SJON, looks like JSON, and yeah looks funny, but my idea is to use S-expressions where the central tool is not the macro, but…