LSeq Identifiers as implemented faithfully to the papers have some undesirable properties, namely around their sensitivity to mis-used allocation strategies.
In practice we were seeing panics due to the exponential tree growing beyond our max height.
This PR:
replaces our Identifiers with the tuple (BigRationals, Dot)
Expands the interval for allowable identifiers from (0,1) to all of the rationals (this is more efficient given how BigRationals are represented internally)
The allocation strategy is now a deterministic algorithm, we simply choose the midpoint between identifiers we would like to insert between.
LSeq Identifiers as implemented faithfully to the papers have some undesirable properties, namely around their sensitivity to mis-used allocation strategies.
In practice we were seeing panics due to the exponential tree growing beyond our max height.
This PR:
(BigRationals, Dot)