Skip to content

Latest commit

 

History

History

README.md

Project documentation

These documents record repository-level design decisions and maintenance workflows. The public API documentation remains in Dart doc comments and the root README. This directory is repository-only and excluded from the published package through .pubignore.

  • Domain language: canonical terms for Either value equality, binding scopes, binding capabilities, and short-circuiting.
  • API naming alignment: implemented migrations, compatibility decisions, the major-version roadmap, and deferred proposals.
  • Arrow Either reference: upstream links and the boundary between Arrow inspiration and the Dart implementation.
  • Either variance safety: signature variance, instance-method runtime checks, extension design, and widened-type tests.
  • Library strengths and improvement roadmap: current capabilities, remaining design work, and the recommended application error-channel policy.
  • ADR 0001: why EitherEffect is an opaque, scope-bound, contravariant capability backed by a private binding scope.
  • ADR 0002: why five variance-unsafe Either instance operations move to named generic extensions in 2.4.0, including the accepted compatibility boundary.
  • ADR 0003: why the implemented algebraic-law and API-coherence suites are permanent release gates without claiming type classes the package does not expose.
  • ADR 0004: why Either equality ignores generic type arguments and hashing must combine a branch discriminator with the active payload hash.
  • API rename workflow: the required process for non-breaking public API renames.

Source of truth

When documents disagree, use this order:

  1. Public declarations and doc comments under lib/.
  2. Behavior covered by test/.
  3. Release notes in CHANGELOG.md and usage examples in README.md and example/.
  4. Design and planning notes in this directory.