Additive API, one behavioural change worth reading before upgrading.
- checkInvariantIsFalsifiable — does the invariant forbid anything? (#18)
- Four SetAlgebra paired-mutation laws (#19): formUnionMatchesUnion,
formIntersectionMatchesIntersection, subtractMatchesSubtracting,
formSymmetricDifferenceMatchesSymmetricDifference, with matching
SetAlgebraLaw cases.
- LawIdentifier.allLawNames / allLawIdentifiers / isKnownLawName /
baseName(of:) — the law vocabulary, exported so consumers can stop
scanning this package's sources to validate coverage claims. (#20)
BEHAVIOUR: checkSetAlgebraPropertyLaws now runs nineteen laws where it
ran fifteen. Every previous law was stated over the non-mutating
operations, so a type whose form* method disagrees with its
non-mutating original passed before and fails now. That is the point of
change to the type under test.
Source-compatible: no exhaustive switch over the law enums exists or is
required, so the four new SetAlgebraLaw cases do not break consumers.