# Changelog for `haskell-fsrs`
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
The major version tracks the FSRS algorithm version, as `py-fsrs` and `fsrs-rs`
do: `7.x.y` implements FSRS-7.
## Unreleased
## 7.0.0 - 2026-08-20
Initial release: FSRS-7.
### Added
- `FSRS.Types` — `Rating`, `MemoryState` and the `Stability` / `Difficulty` /
`Retrievability` / `Days` synonyms.
- `FSRS.Parameters` — the 35 FSRS-7 weights, the default set, bounds taken from
the upstream optimiser's clipper, validation with per-weight errors, clamping,
and typed views onto the weight blocks (`StabilityWeights`, `CurveWeights`).
- `FSRS.Algorithm` — the model: the two-component `retrievability` curve and its
derivative, `nextIntervalDays` (a safeguarded Newton root-find, since the
FSRS-7 curve has no closed-form inverse), `initialDifficulty`,
`nextDifficulty`, `initialStability`, `stabilityAfterReview`,
`transitionCoefficient`, `nextStability`, `nextMemoryState` and
`replayReviews`.
- `FSRS.Scheduler` — cards, due dates, learning and relearning steps, review
logs, interval preview and explicit (pure) interval fuzzing.
- `FSRS` — an umbrella module re-exporting all of the above.
- A test suite of golden vectors generated from a pure-Python transcription of
the upstream reference implementation, plus property tests for the model's
invariants.