equals

open operator override fun equals(other: Any?): Boolean

Two Rga instances are equal when their op-sets and their compactedBelow floors are equal — i.e. they represent the same CRDT state.

The floor is part of the value, not a cache of the op-set. Two replicas can hold identical surviving ops and still disagree about what may be re-admitted: one that has floored (r, 1..3) will silently drop a late Insert with dot (r, 2), while one that has not will absorb it and grow a record the other can never show. They are different states and must not compare equal — otherwise piece could return a state equal to an input whose future behaviour differs, and the delta-fingerprint that us.tractat.kuilt.quilter.Quilter derives from equality would elide a real change. It also keeps a.piece(b) == b.piece(a) honest: the floor merges by elementwise max, so both sides carry it and both sides must see it.

The lamport high-water mark stays out: it is a clock convenience, and two converged replicas may differ in it if one advanced its clock by merging with a peer that had a higher clock, so including it would break a.piece(a) == a.

Fugue.equals is still ops-only — it has no floor.