I’ve been using NixOS for nearly a decade. It took me several days to understand the filesystem layout, and I had the advantage of knowing some capability theory beforehand. However, once I understood the Nix store, my paradigm shifted and I haven’t had any further “unexpected troubles.”
As far as I can tell, AppImages and Flatpaks are extraneous, heavy, improperly isolated, and propagate a sprawling filesystem which is hard to secure. Compare and contrast with Impermanent NixOS, which only persists data that the user has explicitly marked to be saved and has systemwide caching of installed applications.
A list can store zero or more elements. A
NonEmpty
can store one or more element. That’s all.This overall strategy – representing the top of a list as a dedicated value – shows up elsewhere, notably in Forths, where it is called “top of stack” and often stored in a dedicated CPU register.