On Sun, Apr 19, 2020 at 11:00 PM David Mertz <mertz@gnosis.cx> wrote:
See this thread where I created M() as successor of Q().

I saw, and I mentioned it:

I see you've tried while I wrote this, and it's pretty clear it's very far from robust. 

It's really not that hard, I don't think. Probably there are edge cars I haven't addressed, but it's hardly intractable.
 
I promise, it really is that hard. It's doable, I've done it, but your version is far from needing to address a few more edge cases. You can write a decent version without too much difficulty that will work as long as people follow certain obscure rules (i.e. stay away from the edge cases). That's basically what sorcery's first version was. But that'd be a very unusual user experience. It takes a whole lot more for something robust that can't be accidentally misused. And you will certainly need access to the source code.