I have a question about chalk/polonius implomatation.
For Cargo's resolver, I have been looking into persistent union find data structures. The papers I am reading have had 2 examples of where these are useful: for type resolution and for Prolog implementations. So my question is does chalk/polonius already have an implementation if not would a crate be useful for chalk/polonius?
A quote from the paper:
"In Prolog, for example, variables of clauses correspond to elements of a set, and unifications imply disjoint set union operations. In this case, the availability of multiple versions of disjoint sets allows one to support backtracking and branching techniques, and to trace different program executions at the same time."
does it have to be persistent ? ena and rustc have a regular union-find IIRC
For Cargo's resolver it would be nice. (I have already made the graph structure persistent, for a big performance win.)
(for polonius it's not immediately obvious to me right now, and the chalk team will be able to answer in the other stream, either niko or scalexm)
(@davidtwco yeah eh2406 posted this question there already :)