https://github.com/crdoconnor/strictyaml is a neat project deliberately subsetting YAML to remove the unsafe or complex features.
It also has types and even allows you to make round-trip edits with comments preserved!
Related Posts
ASTs typically discard comments, and that's usually what you want.
The only time (AFAICS) that preserving comments is useful is for writing a code formatter.
Could you write a formatter in terms of a list of lexemes? A CST is a non-trivial bit of code for one use case.
TIL Advent of Code and Project Euler will deliberately look for puzzles where the naive solution is worse than quadratic.
This ensures that people can solve them with any programming language. You don't want fast languages to be able to use the naive solution.
Trying the nix CLI today, and I'm seriously impressed with the formatting of its --help output.
Indented warnings, italics, bullets, even adding a left border to code snippets! It's a nice reminder to take full advantage of terminal features to help the reader.