Skip to content

v4.3.0

@Joseph-Cursio Joseph-Cursio tagged this 08 Sep 10:22
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.
Assets 2
Loading