sparql-view-unfold
    Preparing search index...

    Type Alias GroupConstraint<Term>

    GroupConstraint:
        | { group: number; kind: "pin"; pin: Pin<Term> }
        | { kind: "unify"; left: number; right: number }

    One thing that has to hold of the groups, and does not yet: two of them hold the same value, or one of them carries a pin.

    Collected rather than applied on the spot, since establishing either may establish further ones - merging two groups meets their pins, and meeting two pins merges the groups their positions name - and recursing would re-enter a merge halfway through the one running.

    Type Parameters

    • Term