Kind of an aside, but I've been toying with a simple functional language based on Joy and when it came to exposing the filesystem it seemed too fraught with impurity, so instead I'm just using git as the data storage system. Instead of strings or blobs you have handles that are essentially three-tuples of (git object hash, offset, length). It's early days yet, but so far the approach seems promising. (In re: string literals, well, your literal is in a source file, and your source file is in git, so each literal has its tuple already, eh?)