Emacs lisp isn't really a lisp-2. It's more of a lisp-3: the variable namespace, the function namespace, and whatever has been dumped in the symbol plist.
miniblog.
Related Posts
Today in cursed C code:
void foo(int32_t int32_t, int32_t bar);
Since C puts identifiers and typedefs in the same namespace, this code just produces a confusing compile error about the type of bar!
(This occurred in some real code after macro expansion.)
Phabricator does a great job displaying diffs. It has subword highlighting and puts the previous section (based on indentation) in the header, shown as `namespace llvm {`.
The moved line highlighting is a really nice touch too.
(screenshots of https://reviews.llvm.org/D71126)
Esy is a JS preprocessor that lets you define your own blocks: https://www.npmjs.com/package/esy-language
It's a macro system, but it doesn't overlap with function call syntax (unlike e.g. lisp). It makes it a little easier to spot macros, without a whole separate namespace (like foo! in Rust).

