Slightly off-topic; has anyone created programming language who operations are version-control commands?
Unison is a language/platform that incorporates some ideas from version control, but I don't know how far along they are.
I've got this pure functional language and rather than deal with impure IO I just assume a git repo as a data oracle and then file and string operations are all nice and pure!
Instead of regular IO you operate on 3-tuples of (hash, offset, length) where the hash is the git hash of a data blob, and offset and length specify a subset of the bytes in it.
Conceptually these 3-tuples represent lists of ints but the runtime is free to do whatever is most efficient in terms of representing and processing them "under the hood".