A FullCompare function satisfies all the invariants stated below for
RankCompare's relation with KeyCompare.
In addition, its equality is as precise as the KeyCompare
comparison defined below, in that, for all Keys x and y,
FullCompare(x, y) === 0 iff KeyCompare(x, y) === 0.
For non-Key inputs, a FullCompare should be exactly as imprecise as
RankCompare. For example, both will treat all errors as in the same
equivalence class. Both will treat all promises as in the same
equivalence class. Both will order tagged records the same way, which is
admittedly weird because some (such as CopySets, CopyBags, and CopyMaps)
will be considered Keys while others will be considered non-Keys.
A
FullComparefunction satisfies all the invariants stated below forRankCompare's relation with KeyCompare. In addition, its equality is as precise as theKeyComparecomparison defined below, in that, for all Keysxandy,FullCompare(x, y) === 0iffKeyCompare(x, y) === 0.For non-Key inputs, a
FullCompareshould be exactly as imprecise asRankCompare. For example, both will treat all errors as in the same equivalence class. Both will treat all promises as in the same equivalence class. Both will order tagged records the same way, which is admittedly weird because some (such as CopySets, CopyBags, and CopyMaps) will be considered Keys while others will be considered non-Keys.