日本語 · English

external — the external supply declaration (a table literal resolved at run time)

Translated from the canonical Japanese page reference/external.md. The source_sha above records the source revision; a consistency check flags this page when the Japanese original changes.

Category: declaration in a premise binding / Form: name = external(kind: dates | instants [, labels: [domain]] [, source: "…"]) / settled (ADR-46)

Meaning

The socket for “expressions are static, data resolves at run time”. The static properties that a table literal carries in its literal text are here claimed in advance by declaration, standing in for the missing text — the resolved value (point sequence, covering, asof, labels) is subject, as the supply contract, to the same governance checks as literals (containment in the coverage, ascending order, same length). No new type and no new algebra: the resolved value is a table value itself, and out-of-coverage annotations, the coverage summary, and the runway (spec §4.10) ride on it unchanged.

Examples

Receiving a holiday table by external supply (the # resolve: line is the doctest’s resolver fixture — in production the implementation plugs in the resolver):

# eval: 2026-01-01..2026-03-01
# resolve: holidays = dates 2026-01-01 2026-01-12 covering: 2026-01-01..2026-01-31 asof: 2026-01-15
premise HRDB { calendar-system: Gregorian; tz: "Asia/Tokyo"; wkst: Mon; source: "hr-db/holidays"
  holidays = external(kind: dates)
}
@HRDB
holidays
#=> 2026-01-01 2026-01-12
#~> 範囲外 2026-02-01..2026-03-01(HRDB.holidays covering 2026-01-01..2026-01-31, asof 2026-01-15)

The region outside the coverage (February onward) becomes an out-of-coverage annotation, and the coverage summary raises source, covering, asof, and runway — securing lead time for data updates (an operational signal for the firing layer) is observed in the same vessel as for literals.

Pitfalls

table-literal (the same vessel written in literal text; the empty table), provenance governance (spec §3.8), alignment (spec §4.5), ADR-45/46.