The bottom type has a different name in a bunch of languages. I've seen nothing, _|_, !, never and empty.
I don't know which is the most approachable to users though. `List[Empty]` reads very nicely for an empty list, whereas `never` reads nicely for error functions.
Related Posts
Really cute approach to reporting type errors: when there's a type error, show an example of a runtime error that the type check has prevented!
Data-Driven Techniques for Type Error Diagnosis https://escholarship.org/uc/item/59s4h4pv
The most common selling point I hear for Nix is having a list of all the packages you need.
On a traditional Linux distro, I just install things and forget about them. A curated, commented list would certainly be handy when I have a new system.
I'm experimenting with jj this weekend. It seems pretty nice so far, but the mental model is pretty different from git.
For example, there's no `checkout` command. You do `jj new ABC` to switch to a commit, which creates a new empty commit on top of ABC.