No, I haven't. I know there's package managers that help you keep track of what's installed, and tools that help you easily see what you've done. I just find putting a line in a text file with what I did right after I did it is less convoluted and doesn't really add to what I have to do. Automating it sounds nice in theory but actually doing it is messy and convoluted in practice.
A usual line for an install is the package name, the package type (flatpak, appimage, tarball, AUR, deb, etc) and a description of what the package is. Not much longer than the command I typed in to install.
I also keep notes on changes to the system, services created, paths changed, firewall rules, detailed notes on big things and stuff like that. Any time I run into something weird I reference it and make sure it's not something I did before I go hunting for a solution.
I believe that IPFS together with Filecoin is intended to be something like this in a broader, free market sense. Unfortunately IPFS is probably far from ready for mission critical apps and Filecoin hasn't launched at all.
From what I've heard most land-use in the world goes towards animal agriculture - mainly for growing feed. Don't quote me, but I think it's over 40% of all land use in the USA. On balance I'd be far more concerned about the destruction of habitat for already endangered wildlife.
Try elm (http://elm-lang.org/) first; it doesn't mention Functor, Applicative, Monoid, Monad anywhere.
You might come back to Haskell later and it won't seem like such a big deal. (I use Haskell for serious work and love that a quick patch doesn't suddenly start breaking things in 10 other places - it's a real time-saver!)
> We all like simple tools. Complexity kills. It makes our work difficult and gives us much steeper learning curve. Programmers need to know how things work. Otherwise, they feel insecure. If we work with a complex system, then we have a big gap between “I am using it” and “I know how it works”.
One answer to this problem of opaqueness in abstractions is having a well defined denotational semantics. This makes it clear that something can work in one way & only one way (without the need to dive into library internals). I feel that Elm is doing a pretty good job of tackling this for GUIs and signals.
If you don't want a package cluttering up your system, but also don't want to forget about its existence you can just comment it out.