Unison <https://github.com/unisonweb/unison> (not to be confused with Unisom, which I sometimes take if sleep eludes me) is a rather interesting, currently-alpha, Haskell-like language. One of the more interesting bits for ATS3 seems to be their approach for how code is stored and transmitted:
> This dynamic transfer / deployment of arbitrary computations is possible > because definitions in Unison are identified by a cryptographic hash of > their content, *including the hashes of all dependencies* (the hash is > also "nameless" as it isn't affected by naming of variables). To transfer a > computation, we send it to the recipient, and the recipient checks to see > if the computation references any unknown hashes. Any unknown hashes are > synced to the recipient before the transfer completes and the computation > proceeds. So textual references (names) are just aliased to, I suppose, the actual semantic meaning of the underlying code, and are stored separately: To make this happen, Unison just changed the name associated with the hash > of foldl *in one place*. The view command just looks up the names for the > hashes on the fly, right when it’s printing out the code. > This is important: Unison isn’t doing a bunch of text mutation on your > behalf, updating possibly thousands of files, generating a huge textual > diff, and also breaking a bunch of downstream library users who are still > expecting that definition to be called by the old name. That would be > crazy, right? > So rename and move things around as much as you want. Don’t worry about > picking a perfect name the first time. Give the same definition multiple > names if you want. It’s all good! > ☝️ Using alias.term instead of move.term introduces a new name for a > definition without removing the old name(s). > I think there was some discussion on the list previously about doing ATS3 in a non-textual fashion, but I couldn't quickly find the reference. -- You received this message because you are subscribed to the Google Groups "ats-lang-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to ats-lang-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/5aebc1e2-a178-4790-ab1e-868a79b11a8b%40googlegroups.com.