The Unison language sounds pretty wild. https://www.unison-lang.org/learn/the-big-idea/
Learn Unison | 💡 The big idea · Unison programming language

A friendly programming language from the future.

@skagedal the idea is very interesting! Now if someone could combine it with a readable syntax…

@ffried Not a fan of Haskell? :D

I'm not sure I understand the concept... Guess I should read more and/or try it out. But, like... do I get this right: if I have a function A that calls a function B, it would actually address a specific implementation of B. So if I change the behavior of B, nothing would change in A unless I also update it somehow?

Seems like... would be hard to fix bugs? Or will you automatically update the callers somehow?

@skagedal I only skimmed through the intro, but if I understood it correctly, only the signature participates in the hashing (on the callers side). Not the implementation.
However this can have some unintended side effects too I guess…

And I don’t know how you would push updates to users of libraries. That could be done via this internal change log, though.

@ffried As I understand, it is the full syntax tree i.e. the implementation that forms the hash!

From the page I linked above: “Thus, the hash of
increment
uniquely identifies its exact implementation and pins down all its dependencies.”

@skagedal ah, you’re right!

Just found this about updating code:
https://www.unison-lang.org/learn/usage-topics/workflow-how-tos/resolve-conflicts/

Not sure if I like that a language has to ship its own “version control system” for this. I think integrating e.g. git for dependency management (like SPM does) would reduce the complexity but keep the advantages.

It could refer to hashes within namespaces where the latter are referenced by git hashes - which are unique too. It would just need to re-link implementation hashes upon namespace hash updates.

Learn Unison | How to update code and resolve resulting conflicts · Unison programming language

A friendly programming language from the future.

@skagedal I just started reading the intro, but that’s wild! Looks super cool.
@aronstrandberg Haha, I think I immediately forgot about that after sending the t... the message.