Conflict Type
Classifies the nature of a conflict between an incoming proposition and an existing one that it appears to contradict.
Not every clash is a genuine contradiction. The same surface-level disagreement ("Alice works at Globex" vs "Alice works at Acme") can mean different things: the world genuinely changed (WorldProgression), the new statement is a correction of the old (Revision), or the two statements are mutually exclusive truths (Contradiction). Distinguishing these lets the reviser decide whether to supersede, replace, or flag a clash rather than always treating it as an irreconcilable contradiction.
This is a closed discriminated union so consumers can exhaustively pattern-match, with Custom as the open escape hatch for domain-specific classifications.
Inheritors
Types
The two propositions are mutually exclusive truths and genuinely conflict. This is the conservative default classification.
A consumer-defined conflict classification.
The incoming proposition corrects/replaces the existing one as a more accurate statement of the same fact (e.g. fixing a typo'd value).
The world changed: both statements were true at different times, and the incoming one reflects the newer state (e.g. Alice changed employers).