Oh, interesting! I wonder if this could be used for an alternative implementation of Nix/Guix's store/profiles. It seems conceptually very similar, but implemented as a filesystem rather than a big bundle of symlinks.
Nix at least is not content-addressable; it's derivation-contents addressable. Under ideal circumstances the same derivation will result in the same contents, but it's not a guarantee.
I've often imagined a system that tries to build consensus around which (content-addressed) code snippets can be treated as pure functions with (content-addressed) memorized outputs and which ones need to be rerun.
If you're on a well-worn-path you could operate mostly by lookup and only run the code if something doesn't smell right.
Indeed. I'm watching that one closely, although I haven't made time to do much coding in it.
Even if it turns out to be perfect in every way though, it takes a long time for the masses to adopt new languages. I think it might be worth finding ways to build consensus around claims like:
> this particular bit of python can be treated like a pure function
...even though there aren't any guarantees built into the language.