@hackage / moonlight-delta

Boundary-aware delta calculus for Moonlight.

Latest0.1.0.0

Changelog

Changelog

0.1.0.0 - 2026-07-12

  • Initial release of the boundary-aware delta calculus layered over moonlight-core.
  • Checked patch surface (Moonlight.Delta.Patch). A CellPatch records both endpoints of a change — AssertAbsent, Insert, Delete before, Replace before after — so applying one is a verified transition rather than an overwrite. apply, compose, and replay are all checked; diff and invert are total. Stale writes, missing-row races, duplicate inserts, and invalid deletes come back as typed ApplyError/ComposeError/ReplayError instead of silent last-write-wins.
  • Signed deltas (Moonlight.Delta.Signed) with normalize, identity, associativity, and inverse laws.
  • Frontier, support, and monotone modules (Moonlight.Delta.Frontier, .Support, .Monotone). Monotone composition holds under an associative join; ResetDelta is a deliberate left-absorbing rebase, documented as such.
  • Epoch calculus (Moonlight.Delta.Epoch): unbounded Version values, versioned Endpoint objects, checked EpochDelta construction, transportKeys, transportView, and checked composition.
  • The layer also ships repair, scope, normalization, operator, and time modules (Moonlight.Delta.Repair, .Scope, .Normalize, .Operator, .Time).
  • Law families are named through Moonlight.Core.LawName ADTs and checked via a proof-manifest helper; a reference model backs the patch and epoch suites.
  • Public package surfaces are Moonlight.Delta.Patch, Moonlight.Delta.Epoch, Moonlight.Delta.Repair, and the modules in the moonlight-delta-core sublibrary.