Skip to content

exchangealgebra 0.5.0.0

Latest

Choose a tag to compare

@yakagika yakagika released this 04 Sep 03:51
· 4 commits to master since this release

ExchangeAlgebra 0.5.0.0 is on Hackage: https://hackage.haskell.org/package/exchangealgebra-0.5.0.0

Highlights

  • Add selectable value types with MoneyDecimal and MoneyDouble, while removing the RealFloat superclass from HatVal.
  • Add an exhaustive account registry and AccountSemantics covering roles, posting capability, and JCCI/EDINET presentation names.
  • Amend Definition 7 with isContra, contra-aware projections, and netting presentation in bsRows / plRows.
  • Make closing entries cover every Cost and Revenue account.
  • Enforce posting capability by processing context in checked conversion.
  • Encode AccountTitles Binary tags as big-endian Word16.
  • Document the categorical phase-1 laws for mapBasePart, foldEntries, and postFromNetBy, pinned by property tests.
  • Add trial-balance validation, consolidation-worksheet validation, JGAAP reporting transformation, and derived period-result metrics.
  • Add the ordered CL-SBM industrialNetwork / industrialFlows generator and industrialEx1.
  • Add audit-eval compatibility, scoring, checkpoint, Track S checked-loader, and generated-suite tooling in the examples.
  • Improve performance with strict Journal.fromList, an exact-projection fast path, faster journal append, and projection-sharing trial-balance rows.
  • Tighten module boundaries: Alg, Journal and TransTable are abstract (Algebra.Internal holds the representation); posting authority lives in Accounting.PostingPolicy, account balances in TrialBalance.Balance, spill codec and restore in Simulate.Spill; Write no longer depends on Simulate; Chart plotting sits behind the visualize flag; typed mapPosting, replaceNotes and mkJournal replace implicit contracts.

Breaking changes

See the Breaking section of ChangeLog.md and the README section Migrating to 0.5.0.0. In short: HatVal no longer has a RealFloat superclass; Alg, Journal and TransTable are abstract; closing entries cover every Cost and Revenue account; checked conversion enforces posting capability by context; AccountTitles Binary tags are Word16; contra accounts follow the Definition 7 amendment; binary spill files are validated on read.

The bundled examples (examples/) pin this release; the accounting algebra builds without a cairo toolchain via --flag exchangealgebra:-visualize.