1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
use crateKairos;
/// An element's identity: the crate's [`Dot`], re-exported so the whole
/// sequence subtree names one type (ruling R-91). The one-based counter law
/// rides on the type now, so no read here re-proves it.
///
/// Deliberately narrower than an [`Anchor`]'s coordinate: an anchor names a
/// place, which may dangle or spell the non-dot zero, so the two seats keep
/// different types (the S117 anchor law).
pub use crateDot;
pub use crateRawDot;
/// Where a locus hangs: at the origin, immediately in the region after a dot,
/// or immediately in the region before it.
///
/// The Fugue sided anchor (S127): giving insert-before the same subtree
/// structure insert-after already has cures the backward-run interleaving a
/// single-sided left anchor suffers (two concurrent prepend runs merging as
/// "xayb" rather than block-contiguous). A locus can hang on either SIDE of its
/// anchor: an [`After`](Anchor::After) child reads (rank descending) right after
/// the dot, a [`Before`](Anchor::Before) child reads right before it. The
/// invalid state "before the origin" is unrepresentable: [`Origin`](Anchor::Origin)
/// carries no dot, so the enum, not an `(anchor, side)` pair, is the honest
/// domain.
///
/// The carried coordinate is a [`RawDot`], not a [`Dot`]: an anchor names a
/// *place*, not an identity claim. It may dangle (name a dot no replica here
/// holds) or spell the non-dot counter zero; reads over it are total, and a
/// decoder never refuses it (the S117 anchor law, typed at S346).
/// Where a woven element hangs and how it ranks among its siblings.
///
/// An element's identity is its [`Dot`]; its *place* is this
/// locus: the [`Anchor`] it hangs on (a dot and a side, or the origin), and the
/// rank that orders it against the other elements sharing that anchor. Loci are
/// the grow-forever ordering skeleton of a [`Rhapsody`](crate::metis::Rhapsody); a deleted element loses
/// visibility but keeps its locus (an *order tombstone*), because its descendants
/// still hang off it.