Paredit is perhaps the original structural editing tool. Its basic functionality of balancing parentheses is still essential to preserve the structure of the code, and Symex uses this functionality from Paredit even today.
Fundamentally, Paredit is a low level Lisp parser. Symex builds on top of it (in addition to native Emacs facilities including tree-sitter) to provide a high level DSL for structural editing. This DSL allows us to easily implement paredit-like features without needing to write Emacs Lisp (for example, paste
for a basic implementation of “emit forward” (aka “barf”)). Many features included in Symex out of the box — including the many ways to get around: leaping, traversing, climbing and descending — are written in this DSL. The Symex DSL is easy to learn, and expresses computations in a very intuitive way.
From a UI standpoint, Symex’s modal nature is its primary difference from Paredit.
Symex uses Paredit to balance parentheses in Lisp languages. If you’re prefer to use a different tool for this purpose, please See Balancing Parentheses.