Files
zeekayandHanzo Dev 997e8a55bf normalize: read dates, numbers, quantities and money, and refuse what is ambiguous
The package comment named Entity, Date, Number, Measure and Rows, none of
which existed. Four kinds now do, each a Kind[T]: Parse reads text under an
Anchor, Canon writes the one canonical form, and every Kind is also a
Datatype for code that holds several side by side.

- Date reads into a half-open Span with a Grain: "March 2023" is
  [2023-03-01, 2023-04-01). Relative dates count from Anchor.At, the
  source's own date; nothing calls time.Now.
- Number reads exactly into a big.Rat; Quantity adds a unit, folded to its
  symbol only where the word has one meaning; Money adds an ISO 4217 code.

What the text leaves open is refused with ErrAmbiguous, never guessed: day
and month with no Anchor.Order, a clock time with no offset or Anchor.Zone,
or one a zone repeats, "1,234" with no Anchor.Point, a two-digit year, and a
sign several currencies write. One generic test holds Canon∘Parse
idempotent for every kind.

The package comment now names what is there, and the normalize example
shows the kinds.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 00:35:46 -07:00
..